【高精度】被限制的加法
生活随笔
收集整理的這篇文章主要介紹了
【高精度】被限制的加法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題 A: 【高精度】被限制的加法
時間限制: 1 Sec??內存限制: 16 MB提交: 563??解決: 203
[提交] [狀態] [討論版] [命題人:]
題目描述
據關押修羅王和邪狼監獄的典獄長吹噓,該監獄自一千年前建成以來,尚未有一個囚犯能夠成功地越獄。當然這應該要歸功于對囚犯們嚴格的信息管制,例如囚犯們雖然可以自由地使用計算機,但計算機的內存被密碼鎖設置為僅有100KB大小,顯然,在這小得可憐的內存上想編程進行任何大規模的魔法運算,幾乎是不可能完成的任務。但修羅王信奉的格言是“一切皆有可能!”,為了破解掉這個密碼鎖,他所面對的問題是:僅用不超過10個變量,編程計算出兩個等長的N(1<N<107)位正整數A、B(無前導0)相加的結果。輸入
第一行一個數N,表示位數,后面有N行,每行兩個數字,表示A、B相對位的兩個數,輸入的格式是從最高位開始到最低位。輸出
為一個整數,即兩數的和。樣例輸入
4
1 1
2 3
0 5
3 7
樣例輸出
2560
#include <iostream> #include <string> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <deque> #include <map> #define range(i,a,b) for(int i=a;i<=b;++i) #define LL long long #define rerange(i,a,b) for(int i=a;i>=b;--i) #define fill(arr,tmp) memset(arr,tmp,sizeof(arr)) using namespace std; int n,a,b,num[105]; void init(){cin>>n;range(i,0,n-1){cin>>a>>b;num[i]+=a+b;}rerange(i,n-1,0)if(num[i]>=10&&i){int tmp=num[i]%10;num[i]=tmp;++num[i-1];} } void solve(){range(i,0,n-1)cout<<num[i];cout<<endl; } int main() {init();solve();return 0; }View Code
?
?
轉載于:https://www.cnblogs.com/Rhythm-/p/9348693.html
總結
以上是生活随笔為你收集整理的【高精度】被限制的加法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谜底是白字,谜面要成语
- 下一篇: 第二周