C語言 大數取餘

2022-08-05 12:00:18 字數 756 閱讀 1459

大數取餘數(陣列)

今天做學校的oj時遇到一題,問題可見一下截圖:

查遍各大論壇,都沒有遇到合適的方法,普通方法不可用,要採用陣列的形式。

被除數超過long long型別,不能採用常規思路,否則會出現wrong answer。值得注意的一點,是不能用double等實數型別,只有整數型別的才可以求餘數;

因此可以考慮利用陣列運算,可以先定義字串陣列char a[5000],下標多打一些沒有關係,以防萬一,到時候可以用scanf("%s",a)解決。

個人的思路是再定義乙個整數陣列int b[5000],先把a陣列中的每個字元數字轉換成數字。接下去就是小學生做題目了:

前乙個數字先乘以10然後再加上後乙個數,進行取餘數,餘數再乘以10加上後乙個數,以此往復即可。

完整**如下:

1 #include 2 #include 

3int

main()416

for(i=0;i)

1720 printf("

%d\n

",b[l-1

]);21}22

return0;

23 }

取餘和取模的區別以及c語言當中的取餘 運算

一 區別在c c 中 為取餘符,而在python中 為取模符 對整數a,b取餘和取模統一都分為2步 第一步 求整數商,c a b 第二步 計算模或餘數,r a c b 這裡,第二步對於取餘還是取模都是相同的,因為減法和乘法一般不會帶來誤差 但是對於第一步,除法會帶來誤差,取餘在計算c時是向0的方向捨...

結構體運算子與取餘 c語言取餘 c語言去整和取餘

1.1 12 1,3 8 3 2.為取餘運算,符號由被除數決定 e.g.7 4 3,7 4 3,7 4 3 c語言提供了乙個取餘數的運算子 稱之為 模 運算子。只有兩個整數之間才可以進行模運算!a b 表示 用b來整除a,商整數,得到餘數。如 5 3 2 4 3 13 3 7 2的值為什麼為1 舉例...

ACM暑期集訓 同餘定理 逆元 大數取餘

表面上看這道題是問a能不能整除b,實際上還是看二者取餘餘數是否為0,屬於大數取餘的範圍 a的範圍達到10的200次方,用 long long都已經不可以,需要用字串,而b可以用long long 題目 given two integers,aandb,you should check whether...