題目
進製題目,而且還是個計算器~~
話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b(2<=b<=36)進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。 現在小z希望你可以幫助他,編寫實現b進製加法的程式。
共3行第1行:乙個十進位制的整數,表示進製b。第2-3行:每行乙個b進製數正整數。數字的每一位屬於,每個數字長度<=2000位。
乙個b進製數,表示輸入的兩個數的和。
輸入 #1 複製
4123
321輸出 #1 複製
1110
說明/提示
進製計算器
這題也是高精度題。
首先用string讀入資料,(因為資料裡有數字和字母),然後轉換成對應數字 存放在陣列裡(這裡用a【】,b【】)
然後做高精度加法。
**幾個注意點:**這也是高精度加法的日常注意
1 如果最高位大於n進製,表示可以向前再進製
2 以防 最高位是 0的情況
3 輸出,注意是從後往前,然後大於10還要轉換成對應字母
具體看**。。。。。。
#includeusing namespace std;
const int maxn = 20000;
int n;
string x,y;
int a[maxn],b[maxn],c[maxn];
int main()
for(int i=0;i='0' &&y[i] <='9') b[lenb -i] = y[i] -'0';
else if(y[i] >='a' && n>=10) b[lenb-i] = y[i] -'a'+10;
}//ps:下面換成這樣寫也可以
//int lenc=0;
// int cf=0;
// while(lenc <=lena || lenc <=lenb)
// while(c[lenc]==0 && lenc >1)
// for(int i=lenc;i>=1;i--)else
//以防 最高位是 0的情況
while(c[maxlen]==0 && maxlen >1)
//輸出,注意是從後往前,然後大於10還要轉換成對應字母
for(int i=maxlen;i>=1;i--)else
} return 0;
}
洛谷 1604 B進製星球(高精度演算法)
題目背景 進製題目,而且還是個計算器 題目描述 話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b 2 b 36 進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。現在小z希望...
萬進製高精度乘法
program hpm type arr array 1.1000 of longint var a,b,c arr lena,lenb,len1,len2,t1,t2 longint procedure init var s,temp ansistring i longint begin read...
高精度進製轉換模板
高精度進製轉換模板 高精度進製轉換 把oldbase 進製的數轉化為newbase 進製的數輸出。呼叫方法,輸入str,oldbase newbase.change solve output 也可以修改output 使符合要求,或者存入另外乙個字元陣列,備用 include include defi...