【C语言】判断长整型数是否为回文数

1.源代码

#include <stdio.h>
#include <math.h>
int is_huiwen(long x){
    int a[100],i=0,p;//此题请关注注意a[]数组的使用,x的数位将保留在数组中
    while(x){
    	a[i]=x%10;
        i++;
	    x/=10;
	}
        
    for(p=0;p<=(i-1)/2;p++)
        if( a[p]!=a[i-p-1] ) 
		return 0;//判断数组元素是否相等 
    
	return 1;
} 
int main(){
    long x;
    scanf("%ld",&x);
    if(is_huiwen(x))
        printf("YES");
    else
        printf("NO");
    return 0;
}

2.代码思路

  • 定义一个函数is_huiwen,它接受一个长整型参数x,并返回一个整型值,表示x是否是回文数。函数的逻辑是:
    • 声明一个长度为100的整型数组a,一个循环控制变量i,一个判断变量p
    • 使用一个while循环,将x的每一位数字从右到左存放到数组a中,即a[i]=x%10,其中x%10表示x除以10的余数,也就是x的最后一位数字。然后将i加一,表示数组的实际长度增加一位。再将x除以10,去掉x的最后一位数字,即x/=10。循环的条件是x不为0,即x还有数字未处理。
    • 使用一个for循环,从数组的两端向中间遍历,判断数组的元素是否对称,即a[p]是否等于a[i-p-1],其中p从0到(i-1)/2变化,i是数组的实际长度。如果有任何一对元素不相等,就说明x不是回文数,返回0;如果所有的元素都相等,就说明x是回文数,返回1。
  • 定义一个主函数main,它首先声明一个长整型变量x,然后使用scanf函数从标准输入读取一个长整型数,赋值给x。然后调用函数is_huiwen,传入参数x,判断x是否是回文数。如果是,就使用printf函数输出YES;如果不是,就输出NO。最后返回0表示程序正常结束。

这段代码的效果是,对于从标准输入读取的一个长整型数,它会判断它是否是回文数,并输出到标准输出。例如,如果输入的数是1234321,那么输出的结果是YES

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值