1. 程式人生 > >大整數乘法

大整數乘法

space ret algorithm 進行 cout while 當前 ostream cstring

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>   
using namespace std;  
const int maxn = 2000;
int a[maxn];
int b[maxn];
int c[maxn];
char s[maxn];
char t[maxn];
int x;
int main(void)  
{  
    cin>>s;//輸入乘數str1  
cin>>t;//輸入乘數str2 int lens = strlen(s); int lent = strlen(t); for(int i = 0; i <= lens-1; i++)//乘數s存入數組a a[lens-i] = s[i]-0; for(int i = 0; i <= lent-1; i++)//乘數t存入數組b b[lent-i] = t[i]-0; for(int i = 1; i <= lens; i++) { x
=0;//用於存放進位 for(int j = 1; j <= lent; j++)//對乘數每一位進行處理 { c[i+j-1]=a[j]*b[i]+x+c[i+j-1];//當前乘積+上次乘積進位+原數 x=c[i+j-1]/10; c[i+j-1]%=10; } c[i+lent]=x;//進位 } int lenc=lens+lent; while(c[lenc]==0)//刪除前導0 lenc--;
for(int i = lenc; i >= 1; i--)//倒序輸出 cout<<c[i]; cout<<endl; return 0; }

大整數乘法