“21天好习惯”第一期-14

国王的小麦:

相传古代印度国王舍罕要褒赏他聪明能干的宰相达依尔(国际象棋的发明者),国王问他要什么?达依尔回答说:“国王只要在国际象棋的棋盘第1格内放1粒麦子,第2格内放2粒麦子,第3格内放4粒麦子,以后每格是前一格的一倍,一直放到第64格,我感恩不尽,其他什么都不要了。”国王想,这多多少?还不容易!让人扛来了一袋小麦,但不到一会儿全用完了,再拿来一袋很快又用完了。结果全国的小麦全部用完还不够。国王纳闷怎样也算不清这笔帐。

计算出每一格的小麦数,累加得到总数
循环变量:i,初值1,终值64
循环条件:i<=64
循环体:
⊙计算第i格小麦数:a=2*a
⊙累加总数: total= total+a;

#include<stdio.h>
int main()
{
    int i=1;
    double a= 1, total=0;
    for(i=1;i<=64;i++)
    {
        total += a;
        a=a*2;
        printf("i=%d, total=%.0lf\n", i, total);
    }
    return 0;
}

这个问题中由于整数有自己的取值范围,当超过这个取值范围的时候溢出,所以我们考虑把变量a和total改为double类型

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值