每日一題(十六) 高精度整數

2021-09-10 14:21:13 字數 870 閱讀 4959

題目描述:

實現乙個加法器,使其能夠輸出a+b的值。

輸入:

輸入包括兩個數a和b,其中a和b的位數不超過1000位。

輸出:

可能有多組測試資料,對於每組資料,

輸出a+b的值。

樣例輸入:

2 610000000000000000000 10000000000000000000000000000000

樣例輸出:

810000000000010000000000000000000

由於該題輸入非常巨大,不能使用任何整數型別來直接儲存,因此採取高精度整數結構體,以4位為乙個單位進行儲存,按照從低位開始各對應位相加並加上來自低位的進製從而獲取本位的數值以及進製的規則進行運算,具體**如下: 

#include#includestruct biginteger 

void set(char str)

} }void output()

printf("\n");

} biginteger operator + (const biginteger &a) const

if (carry != 0)

ret.digit[ret.size++] = carry;

return ret;

} }a,b,c;

char str1[1002], str2[1002];

int main()

return 0;

}

2021 3 18 OJ每日一題 高精度加法

輸入兩個整數a和b,輸出這兩個整數的和。a和b都不超過100位。由於a和b都比較大,所以不能直接使用語言中的標準資料型別來儲存。對於這種問題,一般使用陣列來處理。定義乙個陣列a,a 0 用於儲存a的個位,a 1 用於儲存a的十位,依此類推。同樣可以用乙個陣列b來儲存b。計算c a b的時候,首先將a...

每日一題 整數劃分

title 每日一題 整數劃分 date 2019 10 27 17 15 16 tags 91.整數劃分 15分 c時間限制 2 毫秒 c記憶體限制 65535 kb 題目內容 對於乙個正整數n的劃分,就是把n變成一系列正整數之和的表示式。注意,分劃與順序無關,例如6 5 1跟6 1 5是同一種分...

leetcode每日一題 整數拆分

難度 中等 給定乙個正整數 n,將其拆分為至少兩個正整數的和,並使這些整數的乘積最大化。返回你可以獲得的最大乘積。示例1 輸入 2輸出 1解釋 2 1 1,1 1 1。示例2 輸入 10輸出 36解釋 10 3 3 4,3 3 4 36。說明 你可以假設 n 不小於 2 且不大於 58。思路 看到題...