AI代码:
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char dive[100];
gets(dive);
int divisor;
cin>>divisor;
int l=strlen(dive);
int res[100]={0},m=0,pos=0;
for(int i=0;i<l;i++)
{
m*=10;
m+=dive[i]-'0';
if(m<divisor)
{
res[pos++]=0;
}
else
{
res[pos++]=m/divisor;
m%=divisor;
}
}
for(int i=0;i<pos;i++)
{
if(res[i])
{
for(int j=i;j<pos;j++)cout<<res[j];
cout<<endl;
break;
}
}
return 0;
}
参考代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1e5+10;
const int M=1e6+10;
char a1[N],b1[N];
int a[N],b[N],i,x,len,j,c[M];
int main ()
{
cin>>a1>>b1;//不解释,不懂看前面
int lena=strlen(a1);//每个部分都很清楚
int lenb=strlen(b1);//这只是方便你们复制
for(i=1;i<=lena;i++)a[i]=a1[lena-i]-'0';
for(i=1;i<=lenb;i++)b[i]=b1[lenb-i]-'0';
for(i=1;i<=lenb;i++)
for(j=1;j<=lena;j++)
c[i+j-1]+=a[j]*b[i];
for(i=1;i<lena+lenb;i++)
if(c[i]>9)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
len=lena+lenb;
while(c[len]==0&&len>1)len--;
for(i=len;i>=1;i--)cout<<c[i];
return 0;
}
我的代码
#include<iostream>
#include<vector>
using namespace std;
vector<int> mul(vector<int>& A,int b)
{
vector<int> C;
int t=0;
for(int i=0;i<A.size()||t;i++)
{
if(i<A.size())t+=A[i]*b;
C.push_back(t%10);
t/=10;
}
return C;
}
int main()
{
string a;
int b;
vector<int> A;
cin>>a>>b;
for(int i=a.size()-1;i>=0;i--)A.push_back(a[i]-'0');
auto C=mul(A,b);
for(int i=C.size()-1;i>=0;i--)printf("%d",C[i]);
cout<<endl;
return 0;
}