怎样用C语言解决象棋和麦子的问题?
#include<stdio.h>#include<stdlib.h>
#include<math.h>
main()
{
int n,s=0,i;
if(n>=1&&n<=64)
{
do
{
i++;
s=s+2^i;
}while(i<n);
printf("%d",s);
return 0;
}
else
exit(0);
}
相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8X8共64格的象棋棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王能兑现他的许诺吗?共要多少麦子赏赐他的宰相?
格子数不是64呢?
输入
输入n表示格子数(n不超过64).
输出
输出麦子总数.
样例输入
3
64
样例输出
7
18446744073709551615