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\n",i); } 20 else 21 { printf("Impossible\n"); } 22 return 0; 23 }
另类的解法,效率比较低:

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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?