杭电ACM1282——回文数猜测
杭电ACM1282——回文数猜想
如题,题目很简单,水题一个。
输入一个数,判断是否是回文数,是就退出,中间的值用数组记录。将数倒序,判断与原来的数是否相等,相等就是回文数。
由于数不超过int型,所以可以用下面的来来判断。
int cheak(int n) { int temp = n; int ans = 0; while(temp) //不断的取temp的最后一个数加到ans上,就将n转置过来了 { ans = ans * 10 + (temp % 10); temp /= 10; } if(ans == n) return 1; else return 0; }
下面的是AC的代码:
#include <iostream> using namespace std; int cheak(int n) { int temp = n; int ans = 0; while(temp) { ans = ans * 10 + (temp % 10); temp /= 10; } if(ans == n) return 1; else return 0; } int num[100]; int main() { int n, k; while(cin >> n) { k = 0; while(!cheak(n)) { num[k++] = n; int temp = n; int ans = 0; while(temp) { ans = ans * 10 + (temp % 10); temp /= 10; } n = n + ans; } num[k++] = n; cout << k - 1 << endl; for(int i = 0; i < k - 1; i++) { cout << num[i] << "--->"; } cout << num[k - 1] << endl; } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。