标题:2的1到64次方之和
取消只看楼主
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
结帖率:78.13%
已结贴  问题点数:30 回复次数:0 
2的1到64次方之和
你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,......后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有64格)。

    国王以为他只是想要一袋麦子而已,哈哈大笑。

    当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!

    请你借助计算机准确地计算,到底需要多少粒麦子。





#include
#include
int main()
{
    char* p;
    char* q;
    char *w;
    char a[200]={0};
    char b[200]={0};
    int i;
    p=a;
    q=b;
    *p='1';
    *q='1';
    for(i=1;i<64;i++)
    {
        while(*p!=0)
        {
            *p=(*p)*2;
            if(*p>'9')
            {
                (*(p+1))++;
                *p=(*p)%10;
            }
            p++;
        }
       for(w=p,q=b;*w!=0&&*q!=0;w++,q++)
       {
           *q=*q+*w;
           if(*q>9)
           {
               (*(q+1))++;
               *q=(*q)%10;
           }
       }
    }
    puts(b);
    return 0;

}


为什么程序结果是1,求高手帮我改下程序
搜索更多相关主题的帖子: 计算 国际象棋 include 全世界 
2013-05-02 21:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406097-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.479408 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved