大數取模運算

2021-06-29 06:50:00 字數 955 閱讀 8981

問題分析:

(1)大數儲存:由於x的位數最大為400位,我們不能用現有的int,long,long long,double等資料型別進行儲存。

一般儲存大數的方法是用乙個字串來表示。

(2)取模運算:模擬手算豎式的方法。用x從高到低的每一位加上前一位餘數*10來對bi進行%,最後得到的結果就是x%bi的結果。

利用到公式:(a+b) mod (n) = (a mod n) + (b mod n) mod (n);

1 %m   =  1 

12 % m  = ( 1 * 10 + 2 ) % m = ( 1 % m * 10 + 2 ) % m 

123 % m = ( 12 * 10 + 3) % m = ( 12 % m * 10 + 3) % m 

...12345678901234567890 % m =(( 1 % m * 10 + 2 ) % m * 10 + 3 ) % m...

int divmod(char* ch,int num)

例題:soj 1020 big num

題目大意:

給出n個整數b1,b2,...,bn,和乙個大整數x,求x對每個數bi取模的結果

n<=100, 1

# include # include # include using namespace std;

int divmod(char* ch,int num)

int main()

{ int test,num,m;

int list[500];

cin >> test;

while(test--)

{ cin >> num;

for(int i=0;i> list[i];

char ch[500];

cin >> ch;

for(int i=0;i

Parity check 大數取模

parity check time limit 2000ms memory limit 524288kb submit statistic problem description fascinated with the computer games,gabriel even forgets to s...

大數階乘取模

水了90分。如果不會正解的話,直接暴力拿分,無腦暴力可以拿到90分 正解分塊打表 就是直接求階乘然後取模。加乙個比較有用的特判 如果n p,那麼n的階乘的因子中一定有p,n的階乘膜p一定等於0 include include using namespace std long long n,p int...

大數階乘取模

暴力 就是直接求階乘然後取模。加乙個比較有用的特判 如果n p,那麼n的階乘的因子中一定有p,n的階乘膜p一定等於0 include include using namespace std long long n,p intjs int n return ans int main else retu...