如题,题目很简单,水题一个。
输入一个数,判断是否是回文数,是就退出,中间的值用数组记录。将数倒序,判断与原来的数是否相等,相等就是回文数。
由于数不超过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;
}