C语言 - 回文数

C语言 - 回文数

回文数:
判断它是不是回文数。即12321是回文数。
输入:任意数。
输出:如果是回文数则输出"true",不是回文数输出"false"。

例:
Example Input
12321
Example Output
true

一、存入数组 用数组比较

#include<stdio.h>
int main(){
	int i,j,input;
	int num[100];
	printf("Example Input\n");
	scanf("%d",&input);
	for(i=0;input>0;i++){
		num[i]=input%10;		//每位放进数组
		input=input/10;
	}
	for(j=0;j<i/2;j++){
		if(num[j]!=num[i-j-1]) break;	//两边比较
	}
	i/2==j?printf("Example Output\ntrue"):printf("Example Output\nfalse");
	return 0;
}

二、算出倒数比较

#include<stdio.h>
int main(){
	int i,tmp,input,sum=0;
	printf("Example Input\n");
	scanf("%d",&input);
	for(i=input;i;i/=10){
		tmp=i%10;
		sum=sum*10+tmp;		//计算出倒数 
	}
	sum==input?printf("Example Output\ntrue\n"):printf("Example Output\nfalse\n");
	return 0;
}
  • 43
    点赞
  • 185
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
判断回文数C语言程序可以有多种实现方式,下面介绍三种常见的方法: 方法一:利用整数翻转的方式判断回文数 该方法将输入的整数进行翻转,然后判断翻转后的整数是否与原整数相等,如果相等则为回文数,否则不是回文数。具体实现代码如下: ``` #include <stdio.h> int main() { int n, x, y; int r=0; printf("输入一个整数: "); scanf("%d", &n); y = n; while( n!=0 ) { x = n%10; r = r*10 + x; n=n/10; } if (y == r) printf("%d 是回文数。", y); else printf("%d 不是回文数。", y); return 0; } ``` 方法二:利用字符串的方式判断回文数 该方法将输入的整数转换为字符串,然后将字符串翻转,最后判断翻转后的字符串是否与原字符串相等,如果相等则为回文数,否则不是回文数。具体实现代码如下: ``` #include <stdio.h> #include <string.h> int main() { int a=12021; char s[10]={'\0'},s1[10]={'\0'}; sprintf(s,"%d",a); int n=strlen(s); int j=0; for(int i=n-1;i>=0;i--) { s1[j++]=s[i]; } if(!strcmp(s,s1)) printf("整数%d是回文串",a); else printf("整数%d不是回文串",a); return 0; } ``` 方法三:利用循环的方式判断回文数 该方法将输入的整数进行循环,每次取出最高位和最低位进行比较,如果相等则继续循环,否则不是回文数。具体实现代码如下: ``` #include <stdio.h> int main(void) { int i,j,k=0; printf("please input number:"); scanf("%d",&i); j=i; while(j) { k=k*10+j%10; j/=10; } if(k==i) printf("%d是回文数!",i); else printf("%d不是回文数!",i); return 0; } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值