信息学奥赛一本通(1171:大整数的因子)
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通(1171:大整数的因子)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1171:大整數(shù)的因子
時(shí)間限制: 1000 ms ??? ??? 內(nèi)存限制: 65536 KB
提交數(shù): 7938 ??? 通過數(shù): 4632
【題目描述】
已知正整數(shù)k滿足2<=k<=9,現(xiàn)給出長(zhǎng)度最大為30位的十進(jìn)制非負(fù)整數(shù)c,求所有能整除c的k。
【輸入】
一個(gè)非負(fù)整數(shù)c,c的位數(shù)<=30。
【輸出】
若存在滿足 c%k == 0 的k,從小到大輸出所有這樣的k,相鄰兩個(gè)數(shù)之間用單個(gè)空格隔開;若沒有這樣的k,則輸出"none"。
【輸入樣例】
30【輸出樣例】
2 3 5 6【分析】
? ? ? ? 大整數(shù)因子的核心是高精除低精,可以直接套用模板實(shí)現(xiàn)。
【參考答案】
C++代碼:
#include<iostream> #include<vector> #include<algorithm> using namespace std;int div(vector<int> &A, int b) {int r = 0;int len = A.size();for (int i = len - 1; i >= 0; i--) {r = r * 10 + A[i];r %= b;}return r; }int main() {string a;vector<int> A, ans;cin >> a;int len = a.size();for (int i = len - 1; i >= 0; i--) A.push_back(a[i] - '0');int r;for (int i = 2; i <= 9; i++) {r = div(A, i);if (r == 0) {ans.push_back(i);}}len = ans.size();if (len) {for (int i = 0; i < len; i++) {cout << ans[i] << " ";}} else {cout << "none";}return 0; }http://ybt.ssoier.cn:8088/problem_show.php?pid=1171
?
總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通(1171:大整数的因子)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1203:扩号匹配问题
- 下一篇: 信息学奥赛一本通 1080:余数相同问题