版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kangyucheng/article/details/85111484
百练OJ:4022:买房子
题目链接:4022:买房子
描述
某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子?(第一年年薪N万,房价200万)
输入
一行,包含两个正整数N(10 <= N <= 50), K(1 <= K <= 20),中间用单个空格隔开。
输出
如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible。
样例输入
50 10
样例输出
8
解题代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
double housePrice =200;
Scanner scanner = new Scanner(System.in);
double n = scanner.nextInt();
double k= scanner.nextInt();
k = k/100;
scanner.close();
for(int m =1;m<=20;m++) {
if(m*n > housePrice) {
System.out.println(m);
return;
}
housePrice = housePrice*k+housePrice;
}
System.out.println("Impossible");
}
}
解题关键:
题目中虽然说输入的都是整数,但是需要注意的是K是百分数,也就是说进行的计算中包含了小数,这样int就不够用了,必须要用double来处理。