AxB Proplem(大數乘法)

2022-07-01 03:00:28 字數 1540 閱讀 8900

描述

redraiment碰到了乙個難題,需要請你來幫忙:給你兩個整數,請你計算a × b。

輸入資料的第一行是整數t(1 ≤ t ≤ 20),代表測試資料的組數。 

接著有t組資料,每組資料只有一行,包括兩個非負整數a和b。 

但a和b非常大,redraiment能保證這些數用long來儲存一定會溢位。 

但a和b的位數最大不會超過100位。

輸出對應每組測試資料,你都要輸出兩行: 

第一行為:"case #:", # 代表這是第幾組測試資料。 

第二行是乙個等式:"a * b = sum", sum 代表 a × b 的結果。 

你要注意這個等式裡包含了幾個空格。 

要求每組資料之間都需要保留乙個空行。

樣例輸入

21 2

123456789 987654321

樣例輸出

case 1:

1 * 2 = 2

case 2:

123456789 * 987654321 = 121932631112635269

#include#include

#include

using

namespace

std;

#define max 100

int solve(char num1,char num2, int

sum)

;

int b[max+10] = ;

int c[max*2+10] = ;

len1 =strlen(num1);

for(j = 0, i = len1-1; i >= 0; i--) //

把數字字元轉換為整型數

a[j++] = num1[i]-'0'

; len2 =strlen(num2);

for(j = 0, i = len2-1; i >= 0; i--)

b[j++] = num2[i]-'0'

;

for(i = 0; i < len2; i++)//

用第二個數乘以第乙個數,每次一位

}for(i=0; i2; i++) //

迴圈統一處理進製問題

}for(i = max*2; c[i]==0 && i>=0; i--); //

跳過高位的0

len = i+1; //

記錄結果的長度

大數加法,大數乘法

include include include typedef struct node pnode 函式宣告 int multiply char strmultipliera,char strmultiplierb,char strrst pnode initlist char strmultipl...

大數問題 大數加法 與 大數乘法 最簡單大數乘法

大數加法很簡單,大叔乘法只是以大數加法為基礎的,光從難度來說,兩者差不多。先舉乙個簡單的例子 所以乘法就是每一位個位數相乘再乘以多少次方就可以了,這個多少次就是兩者的陣列位置的索引相加。看看關鍵 for int i 0 i alen i else result plus result,c heigh...

大數乘法(二)

首先獲取輸入的乘數 a 與被乘數 b 字串,按一般乘法運算過程,先是a的最後一位數字與b的最後一位數字相乘,接著a中用於相乘的數下標遞減,直到a中所有數字與b最後一位都相乘過,儲存結果後再遞減b中的用於相乘的數字的下標,迴圈下去,直到b中每一位數都與a所有數相乘完。在這個過程中,怎麼遍歷出填放結果的...