4 条题解
-
1
#include <iostream> using namespace std; int main() { cout<<0; return 0; }
#include <iostream> using namespace std; int main() { int n, x, y, sum = 0; cin >> n; while(n != x) { x = 0; y = n; sum++; while(y){ x = x*10+y%10; y /= 10; } if(n != x){ n += x; } } cout << sum - 1; return 0; }
-
1
#include <iostream> #include <cmath> using namespace std; bool judge(int n)//判断回文数函数 { int num = 0;//记录位数 int sum = 0; for (int i = 1; n / i != 0; i *= 10)//判断位数 { if (n / i != 0) { num++; } } for (int i = 1; i < num; i++) { sum += (n - n / (int)pow(10, i) * (int)pow(10, i)) / (int)pow(10, i - 1) * (int)pow(10, num - i); }//注意pow函数在使用的时候会发生隐式转换,返回的是double类型,所以要强转成int类型 sum += n / pow(10, num - 1); if (sum == n) { return true; } else { return false; } } int produce(int &n)//生成回文数 { int num = 0;//记录位数 int sum = 0; for (int i = 1; n / i != 0; i *= 10)//判断位数 { if (n / i != 0) { num++; } } for (int i = 1; i < num; i++) { sum += (n - n / (int)pow(10, i) * (int)pow(10, i)) / (int)pow(10, i - 1) * (int)pow(10, num - i); } sum += n / pow(10, num - 1); n = n + sum; return n; } int main() { int n; cin >> n; judge(n); if (judge(n) == true) { cout << 0; return 0; } else { int num = 0; while (judge(n) == false) { produce(n); num++; } cout << num; return 0; } }
- 1
信息
- ID
- 84
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 1
- 标签
- 递交数
- 86
- 已通过
- 70
- 上传者