在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人——宰相西萨·班·达依尔。国王问他想要什么,他对国王说:“陛下,请您在这张棋盘的第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(); }