高精度減法

2022-06-03 08:12:10 字數 965 閱讀 4024

題意:給你兩個整數a,b,計算a+b 的和是多少?(a>0,b>0)

題解:模擬加法

沒壓位

/***

高精度加法:模擬計算

1.大整數儲存: a3a2a1a0

a < 10 a:0~9

len(a) < 10 a:0~999999999

***/

#include #include #include using namespace std;

const int n = 1e6 + 7;

// c = a + b;

vectoradd(vector&a, vector&b)

if(t) c.push_back(1); //是否進製

return c;

}int main()

壓位

#include #include #include using namespace std;

const int base = 1e9; //壓9位

vectoradd(vector&a, vector&b)

if (t) c.push_back(t);

return c;

}int main()

}for (int i = b.size() - 1, s = 0, j = 0, t = 1; i >= 0; i -- )

}vectorc = add(a, b);

cout << c.back();

for (int i = c.size() - 2; i >= 0; i -- ) printf("%09d", c[i]); //前導 0 不輸出

cout << endl;

return 0;

}

高精度減法

題目描述 高精度減法 輸入輸出格式 輸入格式 兩個數 第二個可能比第乙個大 輸出格式 結果 是負數要輸出負號 輸入輸出樣例 輸入樣例 1 2 1 輸出樣例 1 1說明 這也沒什麼好說的,沒什麼特別的要求,就是乙個普普通通的高精減。程式如下 const max 500 var s integer a,...

高精度減法

description 輸入兩個整數a和b,輸出這兩個整數的差。a和b都不超過100位。input 輸入包括兩行,第一行為乙個非負整數a 被減數 第二行為乙個非負整數b 減數 兩個整數都不超過100位,兩數的最高位都不是0。output 輸出一行,表示a b的值。sample input 99999...

高精度減法?!

高精減 嗯輸入就不再講一遍了。儲存和之前是一樣的,倒序儲存。減法需要借位,所以解決減法借位是關鍵。方法如下 if a i a i 1 向上一位借一做十 a i 10 c i a i b i 逐位相減這樣就可以處理借位問題。當然,在減法中還有乙個需要處理的問題,當然這個問題很重要 減法中有被減數和減數...