放麦子
題意:
國際象棋,一共64個方格,第一個格子里放一粒麥子,第二個放2粒,第三個放4粒,第四個放8粒。。。。。(后面的數(shù)字是前面的兩倍)
求放滿64個格子,一共需要多少粒麥子。
?
解題:
還是一個大數(shù)的問題。
?
View Code 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int num[1000]; 6 int sum[1000]; 7 memset(num , 0 , sizeof(num)); 8 memset(sum , 0 , sizeof(sum)); 9 num[0] = 1; 10 sum[0] = 1; 11 int i , j; 12 int temp1 = 0 , temp2 = 0; 13 for( i = 2; i <= 64; i++) 14 { 15 for(j = 0; j <= temp1; j++) //計算當(dāng)前棋盤格里需要多少麥子 16 { 17 num[j] *=2; 18 } 19 for(j = 0; j <= temp1; j++) 20 { 21 num[j+1] += num[j]/10; 22 num[j] %= 10; 23 } 24 if(num[temp1+1]) temp1++; 25 for(j = 0; j <= temp1; j++) //計算一共需要多少麥子 26 { 27 sum[j] += num[j]; 28 } 29 for(j = 0; j <=temp2; j++) 30 { 31 sum[j+1] += sum[j]/10; 32 sum[j] %= 10; 33 } 34 if(sum[temp2+1]) temp2++; 35 } 36 for(i = temp2; i>= 0; i--) 37 cout<<sum[i]; 38 cout<<endl; 39 return 0; 40 }?
?
轉(zhuǎn)載于:https://www.cnblogs.com/nigel-jw/archive/2013/05/06/3063793.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: 【转】盛大创新院许式伟:影响我一生的五个
- 下一篇: C#反射的特性