判断整数是否为回文数

:输入整数   X = 1 2 0 0 0 1;

  1. 将其转换为字符串:S = “ 1 2 0 0 0 1 ”;

  2. 再比较此字符串是否为回文串;

 

#include<stdio.h>
void isPalindrome(int x){
int p,i=0,j=0,k,flag=1;
int a[10];//字符串数组
if(x<0)//若数<0,如-121,其反过来321-,则不是回文数,返回false
    printf("false\n");
//若数>0,按如下操作继续执行
else
{
    while(x>0)//x=0时,跳出循环
   {
    a[i]=x%10;//将余数放置数组中
    x=x/10;//将x的商赋给x
    i++;
   } 
   k=i;//k存储数组a的个数
   while(j<k/2&&flag)//flag=0标志其不是回文串,则终止循环,flag=1,继续循环
  {
    if(a[j]==a[k-j-1])//若队首==队尾
        j++;//则继续遍历队首后一位数?=队尾前一位数
    else
        flag=0;//若!=,则终止
  }
   if(j<k/2)//若终止循环后,j<k/2,则返回false
         printf("false\n");
   else
         printf("true\n");//否则,返回ture
  }
}
int main()
{
    int x;
    while(1)
    {
        printf("输入整数:\n");
        scanf("%d",&x);
        printf("是否是回文数?:\n");
        isPalindrome(x);
    }
    return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值