舍罕王失算

故事:
相传现在流行的国际象棋是古印度舍罕王(Shirham)的宰相达依尔(Dahir) 发明的。舍罕王十分喜爱国际象棋,决定让达依尔自己要求得到什么赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:”陛下,请你赏给我一些麦子吧,就在棋盘的第1格中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,一次放完棋盘上的64格,我就感恩不尽了。“
舍罕王让人扛来了一袋麦子,他要兑现达依尔的许偌。。。请问,舍罕王能兑现他的许偌吗?

摆放完棋盘上的64格共需多少麦子?这些小麦合多少吨(1吨小麦约2.4e7粒)?这些小麦相当于世界粮食年总产量(以2014年度数据2.48e9吨计算)的多少倍?

1 . 说明;
这是一个典型的等比数列求和问题。
总粒数 s=1+2+2^2+2^3+…+2^63
在通过 v=s/2.4e7把s粒小麦的重量折合成v吨,p=v/2.48e9把小麦的重量折合成全世界年总产量的倍数p。

2 .程序设计;

#include<stdio.h>
#include<math.h>
void main()
{
  double t,s,v,p;
  int i,n;
  printf("请输入格数n:");
    scanf("%d",&n);
  t=s=1;
  for(i=2;i<=n;i++)
  {
    t*=2;
    s+=t;
  }
  v=s/2.4e7;
  p=v/2.48e9;
  if(n<=40)
    printf("总麦粒数为:%.0f\n",s);
  else
    printf("总麦粒数约为:%.3e\n",s);
  printf("小麦重量约为:%.0f吨\n",v);
  printf("约相当于2014年世界粮食年总产量的%.0f倍\n",p);
  getch();
}

3 .程序运行示例及注意事项;
请输入格数:64
总麦粒数约为:1.845e+019
小麦重量约为:768614336405吨
约相当于2014年世界粮食年总产量的310倍

输入其他数据可知:n=15格时才达1公斤,n=25格时可达1吨,n=56格时可超过2014年世界粮食年总产量。

注意 :本程序所得结果值非常大,所以要确定好变量的类型及其输出时的类型简化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值