问题描述:某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子(第一年房价200万,收入N万)
输入说明:两个整数N(10<=N<=50),K(1<=K<=20)
输出说明:针对每组数据,如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible
样例输入: 50 10
样例输出: 8
参考主程序代码:
int main()
{
int N,K;
cin>>N>>K;
buyhouse(N,K);
return 0;
}
#include<iostream>
using namespace std;
int main() //主程序代码
{
int buyhouse(int x,int y);
int N,K;
cin>>N>>K;
buyhouse(N,K);
return 0;
}
int buyhouse(int x,int y)
{
int a=1,c; //a为第几年,c为总存款
double b=200; //b为起始房价
do
{ //由题可知,第一年一定买不起房
a=a+1; //年份加一
c=x*a; //因为年薪不变,所以总存款=年薪*总年份
b=b*(100+y)/100; //房价增长
if(a==21) break; //第二十一年时超出范围,跳出循环
}while(c<b); //总存款<房价,则进行循环
if(a>20) cout<<"Impossible"; //输出结果
else cout<<a;
return 0;
}