国际象棋棋盘有64格,若在第1格放1粒谷;第2格放2粒谷;
第3格放4粒谷;第4格放8粒谷……如此一直放到第64格。假设2000000粒谷有一吨重,
问需要多少吨谷才够放?
感觉是用for循环的,但是又不知道怎么写
from math import *
sum=0
for n in range(1,65):
m=int(pow(2,n-1))
sum=sum+m
sum=sum/2000000.0
print("sum=%d" % sum)
用python还是c++写呢
python:
import math
sum=0
t=1
for i in range(0,64):
t=t
sum+=t
t=t*2
print (math.ceil(sum/2000000))
C语言
#include<stdio.h>
int main()
{int i,n,a,b,c;
a=b=0;
c=1;
scanf("%d",&n);
for(i=1;i<n;i++)
{c*=2;
b=b*2+c/1000000000;
c=c%1000000000;
a=a*2+b/1000000000;
b=b%1000000000;
}
if(a)printf("%d%09d%09d\n",a,b,c);
else if(b)printf("%d%09d\n",b,c);
else printf("%d\n",c);
return 0;
}