7 6 高精度數的整除

2022-09-17 08:48:08 字數 847 閱讀 4579

今天為大家講解一篇高精度數的整除,該題的中心思想為char陣列的運用及數學思想,int整數取值範圍為(-2^31,2^31-1)

,而30位的數已經超出了int範圍,所以我們只能用char陣列來進行運算,具體的解題思路即步驟在文末

【題目描述】

已知正整數k滿足2≤k≤9,現給出長度最大為30位的十進位製非負整數c,求所有能整除c的k

【輸入】

乙個非負整數c,c的位數≤30

【輸出】

若存在滿足c%k=0的k,從小到大輸出所有這樣的k,相鄰兩個數之間用單個空格隔開;

若沒有這樣的k,則輸出"none"。

【輸入樣例】

【輸出樣例】

2 3 5 6

題解**:

#include

#include

using namespace std;

char s[31];

int main()

else

}if(temp==0)

}if(!flag) printf("none\n");

return 0;

}題解演算法思想:

該題的思路是從char陣列中第乙個元素即整數頂頭的那一位數開始,挨個從char化為int,加上上一位數與k做取餘運算得到的數temp

迴圈中:

1.temp+當前數大於等於k的時候,對k取餘並乘10供下一位數使用;

2.小於k的時候,說明temp為0且當前數小於k,直接將temp賦值為該數*10進入下一次迴圈

注:以上兩步便決定了當前所做的運算最高只能為兩位數,有效的解決了高精度超過int範圍的問題

迴圈結束後,若temp==0則說明無餘數,可以被當前數k整除

高精度 數樓梯

洛谷 p1255 數樓梯 題目描述 樓梯有n階,上樓可以一步上一階,也可以一步上二階。編乙個程式,計算共有多少種不同的走法。分析 只用稍微用用腦子就可以看出,這是一道斐波那契數列的問題 不過省略了開頭的1,即這裡的數列為 12358 注意n 0,1,2的情況。然而這題需要高精所以寫的特別長 incl...

高精度 數樓梯

題目 樓梯有n階,上樓可以一步上一階,也可以一步上二階。編乙個程式,計算共有多少種不同的走法。乙個數字,樓梯數。走的方式幾種。輸入 1 複製 4輸出 1 複製 5說明 提示 60 n 50 100 n 5000 原本一看,這不是 斐波那契數列 嗎,直接公式下去寫完,dp i dp i 1 dp i ...

高精度數演算法 加法

基本資料型別 長度有限。所以大的資料被單獨拿出來。高精度演算法就是模擬我們在紙上的運算。要死要死要死 我忘記了。乙個空間有剩餘的int後面是自帶補0的啊。還有平時沒有注意到的三目運算子 length str1 str2 str1 str2 上 include include define max 1...