1. 程式人生 > >51NOD 1027 大數乘法

51NOD 1027 大數乘法

ray retext event con put htm scan ges none

1027 大數乘法技術分享 基準時間限制:1 秒 空間限制:131072 KB 分值: 0 難度:基礎題 給出2個大整數A,B,計算A*B的結果。 Input
第1行:大數A
第2行:大數B
(A,B的長度 <= 1000,A,B >= 0)
Output
輸出A * B
Input示例
123456
234567
Output示例
28958703552

技術分享
#include <bits/stdc++.h>
using namespace std;
#define clear(A) memset(A,0,sizeof(A))


int
A[1500],B[1500],C[3000]; char a[1200],b[1200]; int main() { while (~scanf("%s %s",a,b) ) { clear(A),clear(B),clear(C); int la = strlen(a),lb = strlen(b); for(int i=0;i < la;i++) A[la-i] = a[i]-0; for(int j=0;j < lb;j++) B[lb-j] = b[j]-
0; for(int i=1;i <= la;i++) for(int j=1;j <= lb;j++) C[i+j-1] += A[i] * B[j];//註意是+= for(int i=0; i<2500 ;i++) C[i+1] += C[i]/10 , C[i] %=10; int i=2500; while(C[i] == 0) i--; while (i > 0) { cout
<< C[i]; i--; } puts(""); } return 0; }
大數乘法

51NOD 1027 大數乘法