open judge 1.5-16买房子问题


#include<iostream>
using namespace std;
int buyhouse(int N,int K)
{
	int i;
	int flag=0;
	double salarysum=N;
	double price=200;
	for(i=1;i<=20;i++)
	{
		salarysum+=N;
		price=price*(1+K*1.0/100);
		if(salarysum>=price)
		{
			cout<<i+1<<endl;
			flag++;
			break;
		}
	}
	if(flag==0)
	cout<<"Impossible"<<endl;
}
int main()
{
	int N,K;
	while(cin>>N>>K)
	{
		buyhouse(N,K);
	}
	return 0;
}
第一种用函数的方法,函数调用;

第二种用while语句判断,y++成立后break输出;
#include<iostream>
using namespace std;
int main()
{
	double n;
	double k;
	while(cin>>n>>k)
	{
		double y=1;
		double M=200;
		double ALL=n;
	while(true)
	{
		ALL+=n;
		M*=(1+k/100);
		if(ALL>M)
		{
			cout<<y+1<<endl;
			break;
		}
		if(y>19)
		{
			cout<<"Impossible"<<endl;
			break;
		}
		y++;
	}
	}
	return 0;
} 

某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子?(第一年年薪N万,房价200万)

输入

一行,包含两个正整数N(10 <= N <= 50), K(1 <= K <= 20),中间用单个空格隔开。

输出

如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible。

样例输入

50 10

样例输出

8

猜你喜欢

转载自blog.csdn.net/aaassslll147/article/details/81302379