【题目描述】
输入两个高精度正整数
M
M
M和
N
N
N(M和N均小于
100
100
100位)。求这两个高精度数的积。
【输入】
输入两个高精度正整数M和N。
【输出】
求这两个高精度数的积。
【输入样例】
36
3
36 \\ 3
363
【输出样例】
108
108
108
题解
这道题太"简单"了,我一上来就写了一段代码
#include <bits/stdc++.h>
using namespace std;
int main(){
long long a, b;
cin >> a >> b;
cout << a * b << endl;
return 0;
}
完美7个WA
下面才是AC代码:
#include <bits/stdc++.h> //万能头
char a[105],b[105],c[10005]={'\0'};
int multi(char t[],int t1,int m,int i){ //t[]是无限数组
for(int l=m-1;l>=0;l--){
for(int k=1;k<=t1;k++){
c[i]+=(t[l]-'0');
if(c[i]>=10){
c[i+1]+=1;
c[i]-=10;
}
}
i++;
}
return i;
}
int main(){
int i=0,j,n,k=0,m=0,t=0,sum;
scanf("%s",a);
scanf("%s",b);
m=strlen(a);
n=strlen(b);
for(i=n-1;i>=0;i--){
t=b[i]-'0';
sum=multi(a,t,m,k);
k++;
}
if(c[m+n-1]>0){
putchar(c[m+n-1]+'0');
}
for(int i=m+n-2;i>=0;i--){
printf("%c",c[i]+'0');
}
return 0; //要养成代码结束return的好习惯
}