Join Regular Classroom : Visit ClassroomTech

Coding Sample Questions | Part 5 | Codewindow.in

Problem Statement :

Ram wanted to take loan, there are two banks – Bank A and Bank B. Their interest rates vary. He has 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. Now, he need to choose the offer which costs him with less interest. Help him to doing the computation and making 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))

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:
Print either Bank A or Bank B

Constraints:
1 <= P <= 1000000
1 <=T <= 50
1<= N1 <= 30
1<= N2 <= 30

Sample Input 1 :
10000
20
3
5 9.5
10 9.6
5 8.5
3
10 6.9
5 8.5
5 7.9

Sample Output 1 :
Bank B

Sample Input 2 :
500000
26
3
13 9.5
3 6.9
10 5.6
3
14 8.5
6 7.4
6 9.6

Sample Output 2 :
Bank A

Solution :

C

// https://codewindow.in
// Join our Telegram channel

#include "stdio.h"
#include "math.h"
int main()
{
double p,s,mi,sum,emi,bank[5],sq;
int y,n,k,i,yrs,l=0;
scanf(" %lf",&amp;p);
scanf(" %d",&amp;y);
for(k=0;k&lt;2;k++)
{
scanf(&quot; %d&quot;,&amp;n);
sum=0;
for(i=0;i&lt;n;i++)
{
scanf(&quot; %d&quot;,&amp;yrs);
scanf(&quot; %lf&quot;,&amp;s);
mi=0;
sq=pow((1+s),yrs*12);
emi= (p*(s))/(1-1/sq);
sum= sum + emi;
}bank[l++]=sum;
}
if(bank[0]&lt;bank[1])
printf(&quot; Bank A &quot;);
else
printf(&quot; Bank B &quot;);
return 0;
}

// Telegram @codewindow

JAVA

// https://codewindow.in
// Join our Telegram channel

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 &lt; 2; k++) {
System.out.println(&quot;Enter the no of slabs&quot;);
n = sc.nextInt();
sum=0;
for (int i = 0; i &lt; n; i++) {
System.out.println(&quot;Enter the period :&quot;);
yrs = sc.nextInt();
System.out.println(&quot;Enter the interest :&quot;);
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]&lt;bank[1])
System.out.println(&quot;Bank A&quot;);
else
System.out.println(&quot;Bank B&quot;);
}
}

// Telegram @codewindow

Python

# https://codewindow.in
# Join our Telegram channel

bank = []
principal = int(input())
year = int(input())
for i in range(0, 2): # 2 Banks
    installments = int(input())
    sum = 0
    for i in range(0, installments):
        time, roi = [float(i) for i in input().split()]
        square = pow((1+roi), time*12)
        emi = (principal*(roi)/(1-1/square))
        sum = sum + emi
    bank.append(sum)
if bank[0] &lt; bank[1]:
    print(&quot;Bank A&quot;)
else:
    print(&quot;Bank B&quot;)

# Telegram @codewindow