欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

OpenJudge NOI 1.5 16:买房子

发布时间:2025/3/17 编程问答 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 OpenJudge NOI 1.5 16:买房子 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

【题目链接】

OpenJudge NOI 1.5 16:买房子

【题目考点】

1. 循环求幂

  • 设变量r初始值为1:int r = 1;
  • 循环n次每次循环中输入变量a,将r的值设为r*a:r *= a;
  • 循环结束后,r即为ana^nan

【解题思路】

已知每年年薪nnn万,房价每年上涨k/100k / 100k/100
第一年存款nnn万,房价200200200
第二年存款2n2n2n万,房价200(1+k/100)200(1 + k / 100)200(1+k/100)
第三年存款3n3n3n万,房价200(1+k/100)2200(1 + k / 100)^2200(1+k/100)2

第x年存款x⋅nx\cdot nxn万,房价200(1+k/100)x−1200(1 + k / 100)^{x-1}200(1+k/100)x1
判断这两个值,如果存款大于等于房价,说明买得起,输出年份。如果年数x大于20,那么即为买不起。

【题解代码】

解法1:

#include <bits/stdc++.h> using namespace std; int main() {int n, k;cin>>n>>k;double deposit = n, price = 200;//deposit:存款,price:房价for(int i = 1; i <= 20; ++i)//i:现在是第几年{if(deposit >= price)//如果存款比房价高或相等{cout<<i<<endl;//输出此时的年数,return 0;//程序结束}deposit += n;//存款增加nprice *= 1 + double(k) / 100;//房价增长} cout<<"Impossible";//如果没在循环内return,那么一定是到20年还没买上房子,输出“不可能”return 0; }

总结

以上是生活随笔为你收集整理的OpenJudge NOI 1.5 16:买房子的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。