首页 > 试题广场 >

买房子

[编程题]买房子
  • 热度指数:7570 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
    某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子(第一年房价200万,收入N万)

输入描述:
    有多行,每行两个整数N(10<=N<=50), K(1<=K<=20)


输出描述:
    针对每组数据,如果在第21年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible,输出需要换行
示例1

输入

50 10
40 10
40 8

输出

8
Impossible
10
Java 解法
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int n = scanner.nextInt();
            int k = scanner.nextInt();
            int price = 200;
            int money = 0;
            for (int i = 1; i <= 21; i++) {
                money+=n;
                if (money>=price){
                    System.out.println(i);
                    return;
                }
                price*= k/100.0+1;

            }
            System.out.println("Impossible");
        }
    }
}


发表于 2020-03-17 09:40:19 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            double target = 200.0;
            int n = sc.nextInt();
            int k = sc.nextInt();
            int i;
            for(i=2;i<=21;i++){
                target = target*(k+100)/100;
                if(n*i >= target){
                    System.out.println(i);
                    break;
                }
            }
            if(i>21){
                System.out.println("Impossible");
            }
        }
    }
}

发表于 2018-09-25 10:12:05 回复(0)