Important TCS CodeVita Questions Solved – Saving for a rainy day


Important  TCS CodeVita Questions Solved – 2015

important tcs codevita questions solved

Problem : Saving for a rainy day
By nature, an average Indian believes in saving money. Some reports suggest that an average Indian manages to save approximately 30+% of his salary. Dhaniram is one such hard working fellow. With a view of future expenses, Dhaniram resolves to save a certain amount in order to meet his cash flow demands in the future.
Consider the following example.
Dhaniram wants to buy a TV. He needs to pay Rs 2000/- per month for 12 installments to own the TV. If let’s say he gets 4% interest per annum on his savings bank account, then Dhaniram will need to deposit a certain amount in the bank today, such that he is able to withdraw Rs 2000/- per month for the next 12 months without requiring any additional deposits throughout.
Your task is to find out how much Dhaniram should deposit today so that he gets assured cash flows for a fixed period in the future, given the rate of interest at which his money will grow during this period.
Input Format:
First line contains desired cash flow M

Second line contains period in months denoted by T

Third line contains rate per annum R expressed in percentage at which deposited amount will grow
Output Format:
Print total amount of money to be deposited now rounded off to the nearest integer
Constraints:
M > 0
T > 0
R >= 0
Calculation should be done upto 11-digit precision




Sample Input and Output

SNo.

Input

Output

1

500

3

12

1470

2

6000

3

5.9

17824

3

500

2

0

1000

Important TCS CodeVita Questions Solved – Saving for a rainy day
Sample Solution C Program:
#include<stdio.h>

#include<math.h>

int main()

{

int M,T;

float R,A,I,RM;

scanf(“%d”,&M);

scanf(“%d”,&T);

scanf(“%f”,&R);

RM=M;

T–;

while(T>0)

{

A=RM/(1+R/(float)1200);

I=RM-A;

RM+=M-I;

T–;

}

A=RM/(1+R/(float)1200);

I=RM-A;

RM-=I;

double r=ceil(RM-0.5);

if(r>RM)

r=ceil(RM);

else

r=floor(RM);

printf(“%.lf”,r);

return 0;

}

Program logic:
here, a while loop is used to calculate present amount of every month for withdrawing the given amount
required amount= present amount+ present amount * interset% / deposit period
deposit period=1/12
interest%=interest rate/100
=> present amount=required amount/(1+interest rate/1200)
since we know last required amount we only need to iterate the loop T-1 times and later subtract last interest from the required amount.
** using your own logic is better. Program seems easy but your logical approach matters. Also suggest your solution to this problem by commenting.

** check other solved codevita questions







Comments

Popular posts from this blog

A Ten Year Journey: How SEO PowerSuite Has Kept Its SEO Tools Current

4 Ways to Crack a Facebook Password and How to Protect Yourself from Them

Create Separate Contact Page in Blogger