题目描述
蒜头君从现在开始工作,年薪 N 万。他希望在蒜厂附近买一套 60 平米的房子,现在价格是 200 万。假设房子价格以每年百分之 K 增长,并且蒜头君未来年薪不变,且不吃不喝,不用交税,每年所得 N 万全都积攒起来,问第几年能够买下这套房子?(第一年年薪 N 万,房价 200 万)
输入格式
一行,包含两个正整数 N(10 ≤ N ≤ 50),K(1 ≤ K ≤ 20),中间用单个空格隔开。
输出格式
如果在第 20 年或者之前就能买下这套房子,则输出一个整数 M,表示最早需要在第 M 年能买下;否则输出"Impossible"。
Sample Input
50 10
Sample Output
8
思路
房价增长,年薪不变,问是否能在第 20 年或者之前买下这套房子,如果能,输出第几年,如果不能,输出"Impossible"。由于房价一直在涨,我们可以模拟每年的房价,以及一共攒下的钱,模拟途中如果攒下的钱高于实时房价,就跳出循环,输出年份,否则如果一直到20年之后还没攒够钱就输出"Impossible"。(这也太惨了吧)
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n, k;
while(cin >> n >> k)
{
double m = 200.0, sum = n, i;
int flag = 0;
for(i = 1; i <= 20; i++)
{
if(sum >= m) break;
sum += n;
m *= (1 + k * 1.0 / 100);
}
if(i > 20) cout << "Impossible" << endl;
else cout << i << endl;
}
return 0;
}