【c语言】判断一个数是不是回文数

//判断一个数是不是回文数

#include <stdio.h>
#include <assert.h>

int panduan(int *p)
{
	int t = 0;
	int n = *p;
	assert( *p != NULL );
	//每次取出最后一个数乘10加到前边去
	while( *p != NULL )
	{
		t = t * 10 + *p % 10;
		*p = *p / 10;
	}
	//如果是回文数就会相等
	if( t==n )
	{
		return 1;
	}
	else
	{
		return 0;
	}
}
int main()
{
	int a;
	printf("请输入一个整数:\n");
	scanf("%d",&a);
	if( panduan(&a) )
	{
		printf("yes\n");
	}
	else
	{
		printf("no\n");
	}
	return 0;
}

时间: 2024-11-06 03:01:08

【c语言】判断一个数是不是回文数的相关文章

判断整数是否是回文数

关于 判断整数是否是回文数 几种解法:一是将整数转化为字符形式,但需要额外空间:二是将数字逆转得到另一个数,判断是否与原数相等,但有可能溢出: 符合要求的方法是从数的两端向中间推进判断:如相等则弃掉首尾数字: bool isPalindrome(int x) { if (x < 0) return false; int div = 1; while (x / div >= 10) { div *= 10; } //算数的量级 while (x != 0) { int l = x / div;

输入任意一个5位数,判断其是否是回文数

输入任意一个5位数,判断其是否是回文数.所谓的回文数是指其个位与万位相同,并且十位与千位相同,比如:12321或者54645: #include <stdio.h>void main(){   int n=0;    printf("请输入任意一个5位数\n");    scanf("%d",&n);   n%10==n/10000&&(n/10)%10==(n/1000)%10 ? printf("%n是一个回文数&q

输入任意一个5位数,判断其是否是回文数。

#include <stdio.h>void main(){ int a; printf("请输入一个5位数"); scanf("%d",&a); (a/10000==a%10&&(a/1000)%10==(a/10)%10)?printf("是回文数\n"):printf("不是回文数\n");} 输入任意一个5位数,判断其是否是回文数.,布布扣,bubuko.com

48.输入任意正整数,编程判断该数是否为回文数(回文数是指从左到右读与从右到左读一样,如12321)

//1.输入一个数,将其每一位分离,并保存如一个数组 //2.判断数组最后录入的一位是第几位 //3.循环判断是否满足回问数的要求 #include<iostream> using namespace std; int main() { int n,temp; int k=0; int a[20]; cout<<"please input an number: "<<endl; cin>>n; for(int i=0;i<20;i+

javaScript实现回文数、水仙花数判断和输出斐波那契数列

    // 判断一个数是不是回文数                    // 方法一:先将数字转换成字符串,然后依次判断第一个和最后一个数字,第二个和倒数第二个数字...是否相等     function PalindromeNumber1(num){         var str = num.toString();         var flag = true;         var len = str.length;         for(var i = 0; i < (len 

判断回文数算法

回文数是指正序(从左到右)读和倒序(从右到左)读都是一样的整数. 比如形如 121,1221,13531 的数字都是回文数,但 -121,10,25 等等都不是回文数. 如何判断一个数是回文数?这是一个很简单的算法,最常见的实现方式是使用一个栈或其他方法,把数字序列逆序,然后判断逆序后的数字是否等于原先的数字.显然这种实现方式需要至少 n 次循环才能完成判断. 本文提供一种更巧妙的方法,利用回文数的特点,只需要循环 \(\frac{n}{2}\) 次就可以完成判断了,代码及注释如下: bool

(HDU)1282 -- 回文数猜想

题目链接:http://vjudge.net/problem/HDU-1282 做这个题目的时候想了很多. 第一,怎么判断一个数是不是回文数(可以用int表示的时候): 最初的想法是用字符串处理,int(log10()+1)来得到位数...(服了自己)... 然后从两段向中间对比,全部满足就是回文数,后来觉得好麻烦啊. 后来写了个函数得出一个数的反过来的数字,要用的时候用个if语句判断. 第二,格式问题... 反正做这题的时候脑子有点懵,状态很一般,打不过水题. 1 #include <cstd

9.18 判断一个数是否是回文数

[题目]: 定义回文数的概念如下: 1.如果一个非负数左右完全对应,则该数是回文数,例如:121,22等 2.如果一个负数的绝对值左右完全对应,也是回文数,例如:-121,-22等 给定一个32位整数num,判断num是否是回文数 题目来源:左程云老师<程序员代码面试指南> 原文地址:https://www.cnblogs.com/latup/p/10204849.html

判断一个int 型整数 是否为回文数

leetcode 上的题目 Determine whether an integer is a palindrome. Do this without extra space. 由于不能使用额外空间,所以不能把数字转化为字符串后进行比较.因为这样空间复杂度将为线性. leetcode给出了几点提示 1.判断负数是否为回文数,查了下回文数定义,负数不为回文数 2.就是注意不能把数字转字符串,因为不能用额外空间. 3.如果打算反转数字,需要处理好数字溢出情况 我的解决办法: 先获取数字长度,然后获取