1 条题解
-
1梁力 (liangli) LV 8 @ 2023-11-5 15:53:19
#include <iostream> #include <string> using namespace std; int a[35], c[35]; int x; void divide(int len, int b) { //定义一个计算余数的自定义函数 for (int i = 0; i < len; i++) { x = (a[i] + x * 10) % b;/*将当前的数位上的数字加上 上一轮的余数,再对除数取模的结果 就是这一轮的余数*/ } } int main() { string a1; int lena, flag = 0; //定义lena(字符串a1的长度),flag(是否找到答案) cin >> a1; // 输入字符串a1 lena = a1.length(); //获取字符串a1的长度 for (int i = 0; i < lena; i++){ a[i] = a1[i] - '0'; //将字符串a1的每一位转换为int,再放入数组a } for (int k = 2; k <= 9; k++){//循环遍历k(2到9) x = 0; //余数的初始值为0 divide(lena, k); //使用函数divide() 实现高精度除法,并将余数放到全局变量x if (x == 0) { cout << k << ' '; flag = 1; //将标志变量flag设为1 } } if (flag == 0) { //如果找不到能整除a的k cout << "none"; } return 0; }
- 1
信息
- ID
- 1186
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 20
- 已通过
- 7
- 上传者