大数相乘问题
2012-12-05 19:33
197 查看
当所给数相乘超过2^32次方时候,直接用乘法计算是得不到的。此时可以用整型数组来计算,其中数组中每个存一位。
例如:
a[20],b[20],c[40]存从低位到高位的数。a*b->c
先将c初始化为0:
for(j=0;j<20;j++){
for(k=0;k<a[j];k++){
for(i=0;i<20;i++)
c[i+j]+=b[i];
}
}
for(i=0;i<39;i++)
{
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
如此即可得到乘机,然后从高到低逐位显示
for(i=39;c[i]==0;i--);
for(;i>=0;i--)
printf("%d",c[i]);
printf("\n");
例如:
a[20],b[20],c[40]存从低位到高位的数。a*b->c
先将c初始化为0:
for(j=0;j<20;j++){
for(k=0;k<a[j];k++){
for(i=0;i<20;i++)
c[i+j]+=b[i];
}
}
for(i=0;i<39;i++)
{
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
如此即可得到乘机,然后从高到低逐位显示
for(i=39;c[i]==0;i--);
for(;i>=0;i--)
printf("%d",c[i]);
printf("\n");
相关文章推荐
- 深入分析C++中两个大数相乘结果不正确的问题
- 阶乘问题(大数阶乘)简单 n! (一个大数与一个小数相乘的算法 、一个大数与一个小数的除法算法 *【模板】 )
- 数学问题3:两个大数相乘
- 大数问题:用字符串解决大数相加和相乘。
- 大数问题:用字符串解决大数相加和相乘
- 大数相乘问题
- C语言中的大数相乘问题
- 大数相乘问题
- 大数相乘问题
- 算法题-大数相乘问题
- ACM内部函数--数学问题--大数相乘
- 大数相乘问题(java版)
- 大数问题:用字符串解决大数相加和相乘
- C语言大数相乘的问题
- C语言大数相乘问题普通算法->acm.scu.edu.cn:1002
- 一道C语言面试题——大数相乘的问题
- poj2389 大数问题-大数相乘
- 算法题-大数相乘问题
- 多项大数相乘后果不可预知性的问题所在!
- 算法理解——大数相乘问题