哥66666 @ 2018-03-06 13:24:09
本蒟蒻个人认为主要是C++的字符串从下标01开始储存,所以输错,但本蒟蒻加了一位后依旧这样,求dalao and dashen教我。 代码:
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<sstream>
using namespace std;
string s1,s2;
int len1,len2,len,i,j,total;
int a[10001],b[10001],c[100001];
int main()
{
getline(cin,s1);
getline(cin,s2);
//s1=" "+s1; 加了之后c数组出现负数
//s2=" "+s2;
len1=s1.length();
len2=s2.length();
len=len1+len2;
for(i=1;i<=len1;i++)
{
a[i]=s1[len1-i+1]-'0';
}
for(j=1;j<=len2;j++)
{
b[j]=s2[len2-j+1]-'0';
}
for(i=1;i<=len1;i++)
for(j=1;j<=len2;j++)
{
c[i+j]+=a[i]*b[j];
c[i+j+1]+=c[i+j]/10;
c[i+j]=c[i+j]%10;
}
if(c[len]==0) len--;
for(i=len;i>=1;i--)
printf("%d",c[i]);
}
1*2都过不了
在线等,急