**
航电oj:回文数猜想
**
#题目描述
#仔细看题 这个题是只有整数的 没有其他字符 所有不必要用字符数组来实现
#求数的回文 就是除10 取余 在另外一面垒起来就行。
#知识点
回文数
#代码
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
int num,temp;
int data[1000];
bool bp(int x)//判断回文
{
int y = x;
int sum,cnt;
sum = 0;
while(x != 0)
{
cnt = x % 10;
sum = 10 * sum + cnt;
x = x/10;
}
//cout << sum << endl;
if(sum == y)
return true;
else
return false;
}
int ark(int x)//返回回文
{
int sum,cnt;
sum = 0;
while(x != 0)
{
cnt = x % 10;
sum = 10 * sum + cnt;
x = x/10;
}
return sum;
}
int main()//思想滑坡了 还以为要用数组来算 就没算 额(⊙﹏⊙)
{
while(scanf("%d",&num)!=EOF)
{
//cout << bp(num) << endl;
memset(data,0,sizeof(data));
data[1] = num;
int sizenum = 1;
if(!bp(num))
{
for(int i=2;; i++)
{
num += ark(num);
data[i] = num;
sizenum = i;
if(bp(num))//如果是回文就跳出
break;
}
}
cout << sizenum - 1 <<endl;//这个数量是不算初始的数的 但输出又要输出初始的数
for(int i=1; i<sizenum; i++)
{
cout << data[i] <<"--->";
}
cout << data[sizenum] <<endl;
}
return 0;
}
#总结
看见中文题要先仔细读题 一般都会有文字的坑 知道坑以后就是容易题了!!!