1. 程式人生 > >藍橋杯之計蒜客迴文數

藍橋杯之計蒜客迴文數

#include <iostream>
#include <cstdio>
using namespace std;
int num[1005];
int b[1005];
bool judge(int x)
{
	int cnt=0;
	//把每一位從高到低依次取出來 
	while(x)
	{
		b[cnt++]=x%10;
		x/=10;
	}
	for(int i=0;i<cnt/2;i++)//迴圈次數成對 
	{
		if(b[i]!=b[cnt-1-i])
		{
			return false;
		}
	}
	return true;	
}
int reserve(int n)
{
	int j=0;
	while(n)
	{
		//把原來的數*10加新的數字 
		j=j*10+n%10;
		n/=10;
	}
	return j;
}
int main()
{
	int n;
	cin>>n;
	int m=0;
	num[m++]=n;	
	while(!judge(n))
	{
		n+=reserve(n);
		num[m++]=n;
	}
	cout<<m-1<<endl;
	for(int i=0;i<m;i++)
	{
		if(i!=m-1)
		{
			cout<<num[i]<<"--->";
		}
		else
		cout<<num[i]<<endl;
	}
	return 0;
}