编程入门第八课A. 循环基础-买房子 题解

niuniu  •  25天前

首先看题目 : 本题是要计算鸭从现在开始每年得N万,想买房子,但房子要200万,房子价格以每年百分之k增长,请问第几年能够买下这套房子?如果超过20年就输出Impossible;

题目分析 : 本题就是需要一个while循环,把每次把每年的钱加到cut去,把房子每年涨的房价加到一起,c++计算这是第几年,再判断c是不是>=20,如果是就输出Impossible再把返回值变为0(就是return 0;),在while判断当前cut是否小于当前房价。while循环后再输出c就ok了。

好了代码如下:

include <bits/stdc++.h>
using namespace std;
int read(){
	int num = 0,x = 1;
	char c = getchar();
	while (c < '0' || c > '9'){
		if(c == '-') x = -x;
		c = getchar();
	}
	while (c <= '9' && c >= '0'){
		num = (num << 1) + (num << 3) + c - '0';
		c = getchar();
	}
	return num * x;
}
int main (){
	int c = 1;
	double a = 200;
	int n = read();
	int x = read();
	int cut = n;
	while (cut < a){
		cut = cut + n;
		a = a + a / 100 * x;
		c++;
		if (c >= 20){
			printf("Impossible");
			return 0;
		}
	}
	printf("%d",c);
	return 0;
}

read是输入做用的


暂未启用评论功能。