解题思路:用数组存储结果,再从后往前输出结果字符。
核心代码
for(int i=n;i>0;i--,j++)
{
t=i*a+fd;//fd是进的位
fd=t/10;
res[j]=t%10;
}
if(fd!=0)
printf("%d",fd);
#include<stdio.h>
int main()
{
int res[100001]={0},a,n,j=0,t,fd=0;
scanf("%d %d",&a,&n);
if(n==0)
printf("0\n");
else
{
for(int i=n;i>0;i--,j++)
{
t=i*a+fd;//fd是进的位
fd=t/10;
res[j]=t%10;
}
if(fd!=0)
printf("%d",fd);
for(int i=j-1;i>=0;i--)
printf("%d",res[i]);
}
return 0;
}
本文介绍了一种处理大数乘法的算法实现方法,通过使用数组存储中间结果,并从后向前输出字符来解决大数乘法的问题。该算法特别适用于传统整型变量无法容纳的大数值运算场景。
1294

被折叠的 条评论
为什么被折叠?



