Money In Bank

Easy
0/40
Average time to solve is 15m
4 upvotes
Asked in companies
PhonePeDaffodil SoftwareD.E.Shaw

Problem statement

Harshit wants to save money for his first car. So, he puts money in the Ninja bank every day.

He starts by putting in ‘1’ rupee on Monday, the first day. Every day from Tuesday to Sunday, he will put in ‘1’ rupee more than the day before. On every subsequent Monday, he will put in ‘1’ rupee more than the previous Monday.

You are given an integer ‘N’, your task is to return the total amount of money he will have in the Ninja bank at the end of the ‘N’th day.

For example :

Given ‘N’ = 2 
On Day 1 = 1
On Day 2 = 2 
Total Amount = 1 + 2 = 3.
Therefore the answer is 3.
Detailed explanation ( Input/output format, Notes, Images )

Input Format :

The first line of input contains an integer ‘T’ denoting the number of test cases. The 'T' test cases follow.

The first and the only line of each test case contains a single integer ‘N’ denoting the number of days.

Output Format :

For each test case, print an integer denoting the total amount of money after N days.

The output of each test case will be printed in a separate line.

Constraints :

1 <= T <= 10
1 <= N <= 5000

Time limit: 1sec.

Sample Input 1 :

2
2
7

Sample Output 1 :

3
28

Explanation Of Sample Input 1 :

For first test case :  
On Day 1 = 1
On Day 2 = 2 
Total Amount = 1 + 2 = 3.
Therefore the answer is 3.

For Second Test case :
On Day 1 = 1
On Day 2 = 2  
On Day 3 = 3 
On Day 4 = 4 
On Day 5 = 5 
On Day 6 = 6 
On Day 7 = 7 
Total Amount = 1 + 2 + 3 + 4 + 5 + 6 + 7= 28.
Therefore the answer is 28.

Sample Input 2 :

2
8 
9

Sample Output 2 :

30
33 
Hint

can we simulate the process?

Approaches (2)
Simulation

The main idea is to loop from 1 to ‘N’ and add 1 coin more than we did yesterday and every time we complete a week, set the coin value to the number of weeks that have passed.

  • Maintain a variable ‘DAY’ and loop from 1 to ‘N’
  • For every ‘DAY’ increase the value of ‘COIN’ by 1.
  • Maintain a variable ‘RES’ and add the value of ‘COIN’ for every ‘DAY’
  • If the ‘DAY’ % 7 is 0, set the value of ‘COIN’ to ‘DAY’/7.
  • Return ‘RES’ as the final answer.
Time Complexity

O(N), where N is the number of days.

 

Since we are looping from 1 to N therefore net complexity is O(N).

Space Complexity

O(1).

 

Since we are not using any extra space.

Code Solution
(100% EXP penalty)
Money In Bank
Full screen
Console