POJ 2389 高精度乘法
水题,注意数组开大一点。。
代码:
#include <cstdio>
#include <algorithm>
#include <string.h>
using namespace std;
char p[100],q[100];
int res[100];
int N = 0;
int main(){
memset(res,0,sizeof(res));
scanf("%s",p);
scanf("%s",q);
reverse(p, p+strlen(p));
reverse(q, q+strlen(q));
int N = (int)(strlen(p)+strlen(q))-1;
for(int i = 0;i < strlen(p);i++){
for(int j = 0;j < strlen(q);j++){
res[i+j+1] += (p[i]-'0')*(q[j]-'0');
res[i+j+2] += res[i+j+1]/10;
res[i+j+1] %= 10;
}
}
if(res[N+1]) N++;
for(int i = N;i >= 1;i--){
printf("%d",res[i]);
}
}
104KB 0ms