進製 (高精度) 計算器

2022-08-21 21:09:15 字數 976 閱讀 9398

·這題雖然說是高精度題。。。但貌似並沒有用到高精度這個玩意撒(⊙o⊙)…主要是高精思想(???)

·主要可以通過這題來更好了解複習進製轉換。

·洛谷入口:p4282

·題目背景:2008安徽省選(實際就是到橙題)

·題目內容:

小可可在歡樂島的快樂旅程還在繼續,他想買一些紀念品帶回去給同學們,於是來到了禮品部,在這裡他發現了乙個有趣的計算器.

這個計算器是一種特殊的、支援變進製整數加減運算的計算器(所謂變進製,就是每一位的進製可以不同.例如,如果最低位是3進製,次低位是5進製,那麼這種情況的42轉化成十進位制就是4*3+2=14)。

店主看小可可對這個計算器非常感興趣,於是他問小可可:「小朋友,如果我告訴你這個計算器最多可以支援n位的變進製整數,且每一位的進製分別是x1…xn,那麼你知道它能表示的最大整數m是多少嗎?」,小可可想了想說到:「它所能表示的最大的整數m是(x1×x2…×xn)-l。」

店主非常 高興,說到:「你真是個聰明的孩子,如果我告訴你兩個長度為n的變進製整數a,b,你按照我的要求來計算(a+b)mod(m+1)或(a-b)mod(m+1),答案還是用相同的變進製來表示,如果你算對了,那麼我就把這個計算器送給你。」

這下把小可可難住了,但是他非常想要這個計算器,聰明的你能夠幫助小可可嗎?

·主要思想:

1.進製轉換。

2.關於對m取模感覺比整道題都難,但是,認真一看不難發現兩個數a,b一定都小於m,所以絕不會超過2倍m,只要取後n位就可。

·**:

#includeusing namespace std;

const int maxn=100005;

int jz[maxn],a[maxn],b[maxn];

char op;

int n;

int main()

} else

}} for(int i=1;i<=n;i++) cout

}

高精度計算

最近做了一些高精度計算問題,一般來說解題辦法都差不多,都是通過字串來操作的,下面是解題模板。清零操作 string clearstr string s if s return s 0 while s.length 0 s 0 0 s.erase 0,1 刪除第乙個零 if s return s 0 ...

高精度計算

include include includeusing namespace std const int l 110 string add string a,string b 只限兩個非負整數相加 nb l int la a.size lb b.size for int i 0 ilb la lb ...

高精度計算

一.高精度儲存 1.如對數採用的字串輸入 include include using namespace std const int n 100 最多100位 int main 2.直接讀入 include using namespace std const int n 100 最多100位 int...