一棋盘的麦子(7)

在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人——宰相西萨·班·达依尔。国王问他想要什么,他对国王说:“陛下,请您在这张棋盘的第1个小格里,赏给我1粒麦子,在第2个小格里给2粒,第3小格给4粒,以后每一小格都比前一小格加一倍。请您把这样摆满棋盘上所有的64格的麦粒,都赏给您的仆人吧!”国王觉得这要求太容易满足了,就命令给他这些麦粒。当人们把一袋一袋的麦子搬来开始计数时,国王才发现:就是把全印度甚至全世界的麦粒全拿来,也满足不了那位宰相的要求。 那么,宰相要求得到的麦粒到底有多少呢?总数为:
代码如下:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i;
    int sum=0;
    int p;
    for(i=1;i<64;i++)
    {   p=pow(2,i-1);//
       sum=sum+p;
    }
    printf("%d\n",sum);
    return 0;
}
pow(x,y);//其作用是计算x的y次方。x、y及函数值都是double型 
例:
我要计算2的5次方
源代码如下:
#include"stdio.h"
#include"math.h"
main()
{
long total;
int x = 2, y = 5;
total = pow(x,y); /*调用pow函数*/
printf("%ld",total);
getch();
}


猜你喜欢

转载自blog.csdn.net/liuzhioj/article/details/79857218