題目:僅用不超過10個的變數,變成計算出兩個等長的n(1
輸入格式:第一行乙個數n,表示位數,後面有n行,每行兩個數字,表示a、b相對位的兩個數,輸入的格式是從最高位開始到最低位。
輸出格式:輸出兩數的和
輸入樣例:
1 12 3
0 53 7
輸出樣例:
思路:由於記憶體的限制只能考慮從高位到低位的演算法,即讀一行資料就處理一行資料。
因此,可分三種情況處理:
(1)當前計算的兩個同位數的和sum<9時,前位計算的結果不會受以後進製的影響,則可以輸出之前的計算結果。
(2)當前計算的兩個同位數的和sum=9時,則使用變數n9記錄連續9的個數,這樣可以處理以後可能的連續進製了。
(3)當前計算的兩個同位數的和sum>9時,引發高位的進製,則輸出進製後的高位值,並將之前積累的連續n9個9以0輸出
#include#includeusing
namespace
std;
intn,a,b,c,n9,sum,i,j;
bool
first;
intmain()
else
if(sum==9)//
為9時,只要記錄9的個數
n9++;
else
//大於9,即產生進製情況
}cout
處理剩下的一段999...999
cout<<9
;
return0;
}
被限制的加法(高精入門)
題目 僅用不超過10個的變數,變成計算出兩個等長的n 1輸入格式 第一行乙個數n,表示位數,後面有n行,每行兩個數字,表示a b相對位的兩個數,輸入的格式是從最高位開始到最低位。輸出格式 輸出兩數的和 輸入樣例 1 12 3 0 53 7 輸出樣例 思路 由於記憶體的限制只能考慮從高位到低位的演算法...
高精n進製加法
powered by ab in 局外人 從大佬題解搬了一部分思想過來。其實就是兩步 一.回文判斷。二.轉換為字串,做高精加。1.先將兩個字串轉化為10進製的放在陣列裡。2.兩個陣列進行n進製加法。3.每一位帶入表中求值。c include using namespace std const int...
高精度乘法入門詳解(高精乘高精)
高精度乘法。輸入兩個正整數,求它們的積。類似加法,可以用豎式求乘法。在做乘法運算時,同樣也有進製,同時對每一位進行乘法運算時,必須進行錯位相加,如圖3 圖4。分析c陣列下標的變化規律,可以寫出如下關係式 ci c i c i 由此可見,c i跟a i b j 乘積有關,跟上次的進製有關,還跟原c i...