OpenJudge NOI 1.5 16:买房子
生活随笔
收集整理的这篇文章主要介绍了
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 nx⋅n万,房价200(1+k/100)x−1200(1 + k / 100)^{x-1}200(1+k/100)x−1万
判断这两个值,如果存款大于等于房价,说明买得起,输出年份。如果年数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:买房子的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 信息学奥赛一本通(1139:整理药名)
- 下一篇: 信息学奥赛一本通(1224:最大子矩阵)