microchip @ 2020-07-13 10:57:13
#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int num1[5000],num2[5000],len1,len2,ans[8000];
int main()
{
cin>>s1>>s2;
len1=s1.size();len2=s2.size();
for(int i=1;i<=len1;i++){
num1[i]=s1[i]-'0';
}
for(int i=1;i<=len2;i++){
num2[i]=s2[i]-'0';
}
int X=1,x;
for(int i=len1;i>=0;i--){
x=X;
for(int j=len2;j>=0;j--){
ans[x]+=num1[i]*num2[j];
ans[x+1]+=ans[x]/10;
ans[x]%=10;
x++;
}
X++;
}
for(int x=7999;ans[x]==0&&x!=0;x--);
for(x;x>=0;x--){
cout<<ans[x];
}
return 0;
}
我感觉自己没有错,但是结果令我很奇怪 不管我哪里错了,答案数组里也不应该有负数 输入12和12,数组结果:0 0 1 -2 -2 4 0
by 出言不逊王子 @ 2020-07-13 10:58:50
众所周知string
的第一位是
by microchip @ 2020-07-13 11:01:27
@出言不逊王子 wtf......
by 出言不逊王子 @ 2020-07-13 11:02:21
@microchip 说错了,string
的下标计算方法和char
数组是一样的,s1[len1]
是非法位置
by microchip @ 2020-07-13 11:04:02
@出言不逊王子 好吧,知道了
by microchip @ 2020-07-13 11:05:31
还有改了以后为什么前面总是多输出3个0,我不已经把前导零删了吗
by 出言不逊王子 @ 2020-07-13 11:07:08
for(int x=7999;ans[x]==0&&x!=0;x--)
把int删掉
by microchip @ 2020-07-13 11:08:05
@出言不逊王子 唔,谢谢,A了
by 出言不逊王子 @ 2020-07-13 11:08:25
qwq
by houpingze @ 2020-07-13 11:14:04
btd?