• openjudge noi 买房子


    题目链接:http://noi.openjudge.cn/ch0105/16/

    总时间限制: 1000ms 内存限制: 65536kB
    描述

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

    输入
    一行,包含两个正整数N(10 <= N <= 50), K(1 <= K <= 20),中间用单个空格隔开。
    输出
    如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible。
    样例输入
    50 10
    
    样例输出
    8

    正解:

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int N,kk;
     5     double k;
     6     int i;//年数
     7     double a,b;//a是累积的存款,b是当前房价。
     8      
     9     scanf("%d%d",&N,&kk);
    10     k=kk/100.0;
    11     i=1;a=N;b=200;
    12     while(a<b&&i<=20)
    13     {
    14         i++;
    15         a=a+N;     //第i年的时候累计的存款 
    16         b=b*(1+k); //第i年的时候的房价 
    17     }
    18     if(i<=20)
    19     {    printf("%d
    ",i);    }
    20        else
    21     {   printf("Impossible
    ");  }
    22     return 0;
    23 }
    View Code

    另类的解法,效率比较低:

     1 #include <stdio.h>
     2 #include <math.h>
     3 int main(int argc, char *argv[])
     4 {
     5     int N,K,i,a,s=0;
     6     double b,w,kk;
     7     scanf("%d %d",&N,&K);
     8     
     9     kk=1+K/100.0;
    10     for(i=1;i<=20;i++)
    11     {
    12         s=s+N;
    13         b=pow(kk,i-1);
    14         w=b*200;
    15         if(s>w)break;
    16     }
    17     if(i>20) printf("Impossible");
    18     else printf("%d",i);
    19     return 0;
    20 }
    View Code
  • 相关阅读:
    Python float() 函数
    Python bytearray() 函数
    scanner.nextInt()与scanner.nextDouble
    Scanner对象next与nextLine
    JavaDoc
    包机制
    运算符要点
    变量与常量
    test
    类型转换
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/9890558.html
Copyright © 2020-2023  润新知