课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565
【项目5:贪财的富翁】一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我两分钱,第三天我仍给你十万元,你给我四分钱,....,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编程序,通过计算说明,这个换钱计划对百万富翁是否是个划算的交易。
提示:(1)需要计算出30天后陌生人给了百万富翁多少钱,百万富翁给了陌生人多少钱,然后才能做出判断;(2)想要看得清楚,可以选择列出每一天,双方交易获得的钱数;(3)最后结果,当然是想贪心的富翁亏本了。#include <iostream> using namespace std; int main( ) { double m2f=1.0e5,f2m=0.01,m2fs=0,f2ms=0; //陌to富(m2f)每天1.0e5元,富to陌(f2m)第一天1分钱…… int day=1;//一定要赋初值 for(day=1;day<=30;day++) { m2fs+=m2f; f2ms+=f2m; f2m*=2; //每天翻倍 } cout<<"陌给富:"<<m2fs<<",富给陌:"<<f2ms<<endl; if(m2fs>f2ms) cout<<"陌生人自找"; else { if (m2fs<f2ms) cout<<"富翁傻帽了"; else cout<<"两人持平,没意思的交易"; } cout<<endl; return 0; }
为使计算过程更清楚些,可以在循环中对每天的交易进行输出,程序如下:
#include <iostream> using namespace std; int main( ) { double m2f=1.0e5,f2m=0.01,m2fs=0,f2ms=0; int day=1;//一定要赋初值 for(day=1;day<=30;day++) { m2fs+=m2f; f2ms+=f2m; f2m*=2; cout<<"第"<<day<<"天,陌生人给富翁累计 "<<m2fs<<",富翁给陌生人累计 "<<f2ms<<endl; } cout<<"最终,陌生人给富翁:"<<m2fs<<",富翁给陌生人:"<<f2ms<<","; if(m2fs>f2ms) cout<<"陌生人自找"; else { if (m2fs<f2ms) cout<<"富翁傻帽了"; else cout<<"两人持平,没意思的交易"; } cout<<endl; return 0; }