问题描述:HY毕业后进了大厂,,年薪N万。他希望在大厂附近买一套60平米的房子,现在价格是200万。假设房子价格以每年百分之K增长,HY年薪不变,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子? (第一年年薪N万,房价200万)
输入:一行,包含两个正整数N(10≤N≤50), K(1≤K≤20),中间单个空格隔开。
输出:如果在第20年或者之前就能买下这套子,则输出一个整数M,表示最早需要在第M年能买下;否则输出"Impossible"。
样例输入:50 10
样例输出:8
该题并不难,我的主要问题出在没有注意何时使用break语句结束循环
#include<stdio.h>
int main()
{
int a = 200;
int k;
int n;
scanf("%d %d", &n, &k);
int c = n;
float o = 1.0 + k * 0.01;
int m = 1;
while(n/a<1)
{
n = n + c;
a = a * o;
m++;
if (n>=a)//当可以买下房子时循环终止
break;
}
if (m <= 20)
{
printf("%d", m);
}
if (m > 20)
{
printf("Impossible");
}
return 0;
}