循环结构——富翁的交易

【问题描述】
一个百万富翁碰到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你10万,而你第一天给我一元钱,第二天我仍给你十万,你给我二元钱,第三天我仍给你十万,你给我四元钱……你每天给我的钱是前一天的两倍,直到满n(0<=n<=30)天。百万富翁非常高兴,欣然接受了这个契约。请编写一个程序,计算这n天中,陌生人给了富翁多少钱,富翁给了陌生**【输入形式】**
输入天数n(0<=n<=30)
【输出形式】
分行输出这n天中,陌生人所付出的钱和富翁所付出的钱。
【样例输入】
30
【样例输出】
3000000
1073741823
【样例说明】
两人交易了30天,陌生人给了富翁3000000元,富翁给了陌生人1073741823元.

解析:
第二行数据本质上就是等比数列求和。为了练习循环结构,我还是先老老实实地写一下代码。

#include<iostream>
using namespace std;
int main()
{
	int n,o=1,ans=0;
	cin>>n;
	cout<<n*100000<<endl;
	for(int i=1;i<=n;i++)
	{
		ans+=o;
		o*=2;
	}
	cout<<ans<<endl;
}

当然,由于高中数学学过等比数列求和,也可以直接写结果。不过这样就起不到练习循环结构的效果。

#include<iostream>
#include<cmath> 
using namespace std;
const int q=2;
int main()
{
	int n,Sn;
	cin>>n;
	cout<<n*100000<<endl;
	Sn=(1-pow(2.0,n-1)*q)/(1-q);
	cout<<Sn<<endl;
}

知识就是力量。不要做一个傻瓜富翁!
真是:
书到用时方恨少,是非经过不知难。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值