# Java Program for Bank Compare Problem (TCS Codevita) | PrepInsta

## Bank Compare Problem

TCS conducts a global level coding competition every year known as TCS CodeVita. This year this is the 9th season of TCS CodeVita, also known as TCS CodeVita 2020 season 9. Every year before the start of the competition TCS gives some sample questions for the preparation. Bank Compare problem was one of the sample questions of this year. Here we have provided the solution of this problem in Java

## Problem Description

Question – : There are two banks – Bank A and Bank B. Their interest rates vary. You have received offers from both banks in terms of the annual rate of interest, tenure, and variations of the rate of interest over the entire tenure.You have to choose the offer which costs you least interest and reject the other. Do the computation and make a wise choice.

The loan repayment happens at a monthly frequency and Equated Monthly Installment (EMI) is calculated using the formula given below :

EMI = loanAmount * monthlyInterestRate / ( 1 – 1 / (1 + monthlyInterestRate)^(numberOfYears * 12))

Constraints:

• 1 <= P <= 1000000
• 1 <=T <= 50
• 1<= N1 <= 30
• 1<= N2 <= 30

Input Format:

• First line: P principal (Loan Amount)
• Second line: T Total Tenure (in years).
• Third Line: N1 is the number of slabs of interest rates for a given period by Bank A. First slab starts from the first year and the second slab starts from the end of the first slab and so on.
• Next N1 line will contain the interest rate and their period.
• After N1 lines we will receive N2 viz. the number of slabs offered by the second bank.
• Next N2 lines are the number of slabs of interest rates for a given period by Bank B. The first slab starts from the first year and the second slab starts from the end of the first slab and so on.
• The period and rate will be delimited by single white space.

Output Format: Your decision either Bank A or Bank B.

Explanation:

• Example 1
• Input
• 10000
• 20
• 3
• 5 9.5
• 10 9.6
• 5 8.5
• 3
• 10 6.9
• 5 8.5
• 5 7.9
• Output: Bank B

• Example 2
• Input
• 500000
• 26
• 3
• 13  9.5
• 3  6.9
• 10  5.6
• 3
• 14  8.5
• 6  7.4
• 6  9.6
• Output: Bank A

## Java Code

```import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double p,s,mi,sum,emi,sq;
int y,n,k,yrs,l=0;
double[] bank = new double[5];
System.out.println("Enter the principal amount");
p = sc.nextDouble();
System.out.println("Enter tenature year");
y = sc.nextInt();
for (k = 0; k < 2; k++) {
System.out.println("Enter the no of slabs");
n = sc.nextInt();
sum=0;
for (int i = 0; i < n; i++) {
System.out.println("Enter the period :");
yrs = sc.nextInt();
System.out.println("Enter the interest :");
s = sc.nextDouble();
mi=0;
sq=Math.pow((1+s), yrs*12);
emi=(p*(s))/(1-1/sq);
sum=sum+emi;
}
bank[l++]=sum;
}
if(bank[0]<bank[1])
System.out.println("Bank A");
else
System.out.println("Bank B");

}

}```
```Output
10000
20
3
5 9.5
10 9.6
5 8.5
3
10 6.9
5 8.5
5 7.9
Bank B```

## C

To find the solution of Bank Compare problem in C Programming language click on the button below:

C

## C++

To find the solution of Bank Compare problem in C++ Programming language click on the button below:

C++

## Python

To find the solution of Bank Compare problem in Python Programming language click on the button below:

Python

### 2 comments on “Java Program for Bank Compare Problem (TCS Codevita) | PrepInsta”

• Jayant Choudhary

import java.util.*;

public class BankEmi {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int Amount = sc.nextInt();
int totalYear = sc.nextInt();
double total_Bank1 = 0;
double total_Bank2 = 0;

int A = sc.nextInt();
while (A– > 0) {
double Bank1[] = new double[2];
for (int i = 0; i 0) {
double Bank2[] = new double[2];
for (int i = 0; i total_Bank2) {
System.out.println(“Bank B”);
} else {
System.out.println(“Bank A”);
}
}

}

• Sanskar

import java.util.*;
class Solution
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double amt=sc.nextDouble();
int t=sc.nextInt();
double i1=0,i2=0;
int b1=sc.nextInt();
for(int i=1;i<=b1;i++)
{
int time=sc.nextInt();
double r=sc.nextDouble();
i1=i1+(amt*r*time/100);
}
int b2=sc.nextInt();
for(int i=1;i<=b2;i++)
{
int time=sc.nextInt();
double r=sc.nextDouble();
i2=i2+(amt*r*time/100);
}
if(i1<i2)
{
System.out.println("Bank A");
}
else
{
System.out.println("Bank B");
}
}
}