描述
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所有數相乘完。在這個過程中,怎麼遍歷出填放結果的...