被限制的加法(高精入門)

2022-04-02 18:53:44 字數 803 閱讀 5761

題目:僅用不超過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#include

using

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...