题意:
蒜头君从现在开始工作,年薪 N 万。他希望在蒜厂附近买一套 60平米的房子,现在价格是 200 万。假设房子价格以每年百分之 K 增长,并且蒜头君未来年薪不变,且不吃不喝,不用交税,每年所得 N 万全都积攒起来,问第几年能够买下这套房子?(第一年年薪 N 万,房价 200 万)
输入格式
一行,包含两个正整数N(10≤N≤50),K(1≤K≤20),中间用单个空格隔开。
输出格式
如果在第 20 年或者之前就能买下这套房子,则输出一个整数 M,表示最早需要在第 M 年能买下;否则输出"Impossible"。
思路:
计算每一年拥有的钱money和当前房子价格house并进行比较,如果钱够买房子,就输出答案;否则进入下一年。若到第20年还没能买下房子,则输出Impossible。
总结:
一道简单的模拟题,要注意乘以1%这样的数应该用double而不是用int来存。
代码:
#include <iostream>
using namespace std;
//不能用int,202*1/100=2,,202.0*1/100=2.02
double n,k;
double money,house;
int main()
{
cin>>n>>k;
int ans=1;
if(n>=200.0) cout<<ans<<endl;
else
{
money=n,house=200.0;
while(ans<=20)
{
money=money+n;
house=house+house*k/100;
ans++;
if(money>=house)
break;
}
if(ans<=20) cout<<ans<<endl;
else cout<<"Impossible"<<endl;
}
}