欢迎访问==> 【考研OR保研】机试题
题目描述
某程序员开始工作,年薪 $N$ 万,他希望在中关村公馆买一套 $60$ 平米的房子,现在价格是 $200$ 万,假设房子价格以每年百分之 $K$ 增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得 $N$ 万全都积攒起来,问第几年能够买下这套房子(第一年房价 $200$ 万,收入 $N$ 万)
输入格式
输入包含多组测试数据。
每组数据共一行,包含两个整数 $N$ 和 $K$。
输出格式
对于每组数据,如果在第 $21$ 年或者之前就能买下这套房子,则输出一个整数 $M$,表示最早需要在第 $M$ 年能买下,否则输出 Impossible
。
每组数据输出占一行。
数据范围
$10 \\le N \\le 50$,
$1 \\le K \\le 20$,
每个输入最多包含 $100$ 组数据。
输入样例:
50 10
40 10
40 8
输出样例:
8
Impossible
10
C++ 代码
#include <bits/stdc++.h>
using namespace std;
int n, k;
int main()
{
while(cin >> n >> k)
{
bool has_buy = false;
double a = 200, b = n; //存的钱和房子的价格分别为b和a
for(int i = 1; i <= 21; i ++)
{
if(b >= a)
{
cout << i << endl;
has_buy = true;
break;
}
b += n; //存的钱+n
a = a + k / 100.0 * a; //房子的价格增长百分之k
}
if(!has_buy) puts("Impossible");
}
return 0;
}