信奥1171

题目:1171:大整数的因子

地址 :http://ybt.ssoier.cn:8088/problem_show.php?pid=1171
类型:模拟,大整数除

题解:

#include using namespace std;
// 思路1 针对每个数不同,判断,例如,2,4,5,8看尾数,3,6。,9看总和,7用拆分
// 优点,速度快、   		缺点:麻烦
// 思路2暴力
// 优点: 简单  			缺点:时间略长/// 本文采用思路2 
vector<int> a, b;
vector<int> turn(string s) {vector<int> a;reverse(s.begin(), s.end());for (int i = 0; i < s.size(); i++) {a.push_back(s[i] - '0');}return a;
}
// 注意除法是从高位开始除的
// 除数添加到商的最后一个(方便返回)
vector<int> operator/(vector<int> a, int x) {vector<int> q;int r = 0;for (int i = a.size() - 1; i >= 0; i--) {r = r * 10 + a[i];if (q.size() != 0 || r / x >= 1)q.push_back(r / x);r = r % x;}q.push_back(r);return q;
}int main() {string s;int f = 1;cin >> s;a = turn(s);for (int i = 2; i < 10; i++) {b = a / i;if (b.back() == 0) {f = 0;cout << i << ' ';}}if (f)cout << "none";return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部