题目描述
蒜头君从现在开始工作,年薪 N 万。他希望在蒜厂附近买一套 60 平米的房子,现在价格是 200 万。假设房子价格以每年百分之 K 增长,并且蒜头君未来年薪不变,且不吃不喝,不用交税,每年所得 N 万全都积攒起来,问第几年能够买下这套房子?(第一年年薪 N 万,房价 200 万)
输入格式
一行,包含两个正整数N(10≤N≤50),K(1≤K≤20),中间用单个空格隔开。
输出格式
如果在第 20 年或者之前就能买下这套房子,则输出一个整数 M,表示最早需要在第 M 年能买下;否则输出"Impossible"。输出时每行末尾的多余空格,不影响答案正确性
样例输入
50 10
样例输出
8
想法
利用 (1+ K / 100.0) 计算房价年增长倍数,如果截止今年的工资大于或等于去年的房价就停止输出当年年份,否则继续下一年,超过20年就停止,输出"Impossible"
代码
#include<cstdio>
#include<iostream>
using namespace std;
int N,i=1;
double s, p = 200,nt,K;
int main()
{
scanf("%d%lf", &N,&K);
nt = (1+ K / 100.0);
for (; i <=20;i++)
{
s += N;
if(s>=p)
{
break;
}
p *= nt;
}
if(i>20)
printf("Impossible");
else
printf("%d", i);
//system("pause");
return 0;
}