單精度和高精度乘法

2021-08-08 21:11:19 字數 889 閱讀 1730

lightoj-1024

#include#include#include#includeusing namespace std;

const int maxn = 100010;

int ans[maxn], cnt[maxn], len;

int fun(int x,int y)//x代表因子 y代表這個因子出現的次數

void multiply(int fact)

// for(int i=len;i>=0;i--)

// cout << ans[i] <<":";

// cout << endl;

int tmp = ans[len];

while(tmp)//分解最後那個數,因為最後可能不是一位數,大數長度增加就是在這裡記錄的

// for(int i=len;i>=0;i--)

// cout << ans[i] <<"^";

// cout << endl;

}int main()

}ans[0] = len = 1;

for(int i = 2; i <= 10000; i ++) if(cnt[i]) multiply(fun(i, cnt[i]));

printf("case %d: ", ++case);//上面的迴圈是把所有最高次因子乘起來

for(int i = len - 1; i > 0; i --) printf("%d", ans[i]);//按位輸出大數

printf("%d\n", ans[0]);

}return 0;}/*

5 4 3 5 7 11

*/

網上學來的,自己加了注釋便於理解。->

演算法 高精度計算乘法1(高精度乘單精度)

題目描述 高精度乘單精度,a b。a是乙個很大的非負整數,但不超過240位,b是乙個非負整數不超過10000,求a b。高精度乘單精度的數學實現 1 2 5 25 25 50 125 諸位進製 3 1 2 512 5 2525 5012531 25實現步驟 1 string s讀入高精度數,int ...

高精度乘單精度

沒壓位的 舉個例子,12345 5 ans 5 4 3 2 1 y 5一變 25 4 3 2 1 x 0 5 25 10 4 3 2 1 x 2 25 10 二變 5 22 3 2 1 x 0 5 2 22 10 3 2 1 x 2 22 10 三變 5 2 17 2 1 x 0 5 2 7 2 1...

高精度乘單精度

沒壓位的 舉個例子,12345 5 ans 5 4 3 2 1 y 5一變 25 4 3 2 1 x 0 5 25 10 4 3 2 1 x 2 25 10 二變 5 22 3 2 1 x 0 5 2 22 10 3 2 1 x 2 22 10 三變 5 2 17 2 1 x 0 5 2 7 2 1...