所谓回文数,就是反转之后其值不变的数.如12321.算法很简单,把数逆转后和原来的值比较就可以了,程序仅需20行:#include using namespace std;bool check(long a){ long b=0,temp=a;//用b保存逆转后的数,temp保存输入的值,最后用来和b比较 while(a>0) {//把a的值自右向左逐位取出,自左至右地加到b上b*=10;b+=a%10;a/=10; } return b==temp;//若相等则返回true.}void main()//测试{ if(check(2034302))cout const int MaxSize=50; class Stack{
private:
char slist[MaxSize];
int top;
public:
Stack(void){top=0; };
~Stack(void){};
void Push(const char &item);
char Pop(void);
int StackEmpty(void) const{ return top==0;};
int StackFull(void) const{return top==MaxSize;};};void Stack::Push(const char&item){
if(top==MaxSize)
cout #includemain()
{int i,x;
int b,c;
int flag;
for(i=10;i<100;i++)
{x=i;
b=x/10;
c=x%10;
if(b==c)
flag=1;
else
flag=0;
if(flag==1)
printf("%6d,",i);
}
for(i=100;i<1000;i++)
{x=i;
b=x/100;
c=x%100;
c=c%10;
if(b==c)
flag=1;
else
flag=0;
if(flag==1)
printf("%6d,",i);
}
getch();}
|