问题遇到的现象和发生背景
计算2147483648*96
问题相关代码,请勿粘贴截图
#include
using namespace std;
int main()
{
char a[11]={"2147483648"};
int b[10]={0};
char f[3]={'9','6'};
int d[2]={0};
int i=0;
for(i=0;i<2;i++)
{
d[i]=f[1-i]-'0';
}
int c[12]={0};
for(i=0;i<10;i++)
b[i]=a[9-i]-'0';
//for(i=10;i>=0;i--)
//cout<<b[i];
int j;
for(j=0;j<2;j++)
{
int x=0;
for(i=0;i<10;i++)
{
c[i+j]=b[i]*d[j]+x+c[i+j];
x=c[i+j]/10; //进位
c[i+j]=c[i+j]%10;
}
c[i+j+1]=x;
}
// for(i=0;i<10;i++)
// cout<<b[i];
i=11;
while(c[i]==0)
{
i--;
}
for(i;i>=0;i--)
{
cout<<c[i];
}
return 0;
}
运行结果及报错内容
196 158 430 208 正确答案: 206 158 430 208
我的解答思路和尝试过的方法
我是用大整数乘法做的,但是为什么最后差了一点
我想要达到的结果
206 158 430 208