请教个小程序。。。。。。

http://wenwen.soso.com/z/q284958050.htm?ch=gr.new.grdt让百度气糊涂了。。。这个是求象棋上的麦子数。。。第一个棋格里放一粒麦子第二个放2粒。。。。三个放4粒。。。依次类推
2026年09月25日 05:22
有1个网友回答
网友(1):

是出在进位方面,这种算法不是很容易的理解。
可以这样理解:2^0+2^1+…2^63=2^64-1=(2^32-1)(2^32+1)=4 294 967 295 *4 294 967 297
#include
int main()
{
int i,j,count,a[10]={5,9,2,7,6,9,4,9,2,4},b[10]={7,9,2,7,6,9,4,9,2,4},sum[25]={0};
for(i=0;i<10;i++)
for(j=0;j<10;j++)
sum[i+j]+=a[i]*b[j];/*模拟小学乘法运算,只是后面才进位*/

for(i=1;i<25;i++)
{
sum[i]=sum[i]+sum[i-1]/10;/*进行进位运算*/
sum[i-1]%=10;
}
for(i=24;i>0;i--)
if(sum[i])
break;/*输出时略去前面的0*/

for(;i>=0;i--)
{
printf("%d",sum[i]);
}
printf("\n%.0lf检验的数\n",(double)4294967295*(double)4294967297);/*用来检测该数前面的数字情况*/

getchar();
return 0;
}