回文的判断 (数字、字符串)

1、回文数

#include<stdio.h>
int length(int n)
{
	int count=0;
	while(n)
	{
		n/=10;
		count++;
	}
	return count;
}
int num_huiwen(int n)
{
	int i=0;
	int arr[20];
	if(n<=0)
	{
		printf("请重新输入数字:");
		scanf("%d",&n);
		huiwen(n);
	}
	else
	{
		int len=length(n);
		for(i=0;i<len;i++)
		{
			arr[i]=n%10;
			n/=10;
		}
		for(i=len-1;i>=0;i--)
		{
			if(arr[i]==arr[len-i-1])
			{
				return 1;
			}
			else
			{
				return 0;
			}
		}
	}
}
int main()
{
	int num=0;
	int ret=0;
	printf("请输入数字:");
	scanf("%d",&num);
	ret=num_huiwen(num);
	if(ret==1)
	{
		printf("该数是回文数!\n");
	}
	else
	{
		printf("该数不是回文数!\n");
	}
	return 0;
}

2、回文字符

#include<stdio.h>
#include<string.h>
int char_huiwen(char arr[])
{
	int len=strlen(arr);
	int i=0;
	for(i=0;i<len;i++)
	{
		if(arr[i]==arr[len-i-1])
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}
}
int main()
{

	char arr[20]="hello olleh";
	int ret=char_huiwen(arr);
	if(ret==1)
	{
		printf("该字符串是回文字符串!\n");
	}
	else
	{
		printf("该字符串不是回文字符串!\n");
	}
	return 0;
}
时间: 2024-11-05 21:44:26

回文的判断 (数字、字符串)的相关文章

链表回文串判断&amp;&amp;链式A+B

有段时间没有练习了,链表回文串判断用到了栈.链式A+B将没有的项用0补充.链表有没有头节点,及结点和链表的区别,即pNode和pHead. //#include<iostream> //using namespace std; // //class Base { //public: // Base(int j) : i(j) {} // virtual~Base() {} // void func1() { // i *= 10; // func2(); // } // int getValu

回文数扩展--长字符串版

//回文数扩展 长字符串版 #include<iostream> #include<string> using namespace std; int main() { string str,s; cin>>str; int n=str.size(); for(int i=n-1;i>=0;i--) { s.push_back(str[i]); } if(str==s) { cout<<"是回文"<<endl; } els

[小米]2015小米校招之回文数判断

[题目] 大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串,比如"上海自来水来自海上"就是一个回文串.现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?时间复杂度和空间复杂度越低的算法,得分越高. c++: bool isPalindromeNumber(long num); java: boolean isPalindromeNumber(long num); [代码] #include <iostream> using namespa

Openjudge-计算概论(A)-回文串判断

描述: 任意给定一个非空的字符串,判断其是否是回文串.回文串是指正向看和反向看均相等的串,如AbcDcbA和cDDc.如果是回文串,则输出1,否则,输出0 输入长度不小于1不大于100的字符串输出如果是回文串,输出1如果不是回文串,输出0 样例输入 abcdefghijkjihgfedcba 样例输出 1思路:这题很简单,算是字符串入门题,只要判断是否从前往后扫和从后往前扫一样就得了,输出.提示:这题输入一定要用gets()函数,否则会报错代码如下: 1 #include<stdio.h> 2

回文数-不能用字符串

随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254).不能用字符串库函数 1 bool Symmetry(int input) 2 { 3 int number = input; 4 int reverse = 0; 5 while (number) 6 { 7 reverse = reverse*10 + number%10; 8 number = number/10; 9 } 10 return reverse == input; 11 }

回文数判断函数

#include <stdio.h>int f(int n)//判断是否是回文数,是返回1,否则返回0{ int t=0,m=n; while(m)//如果m不等于0,执行下面循环,否则跳出循环 (求这个数各位上数字反向排列的数 ) { t*=10; t+=m%10; m/=10; } return t==n;//如果这个数各位数字反向排列所得数依然等于该数,该数就是回文数 }

算法之回文数判断

所谓回文字符 串就是指正读反读均相同的字符序列,如“席主席”.“记书记”.“aha”和“ahaha”均是回 文,但“ahah”不是回文. 通过栈这个数据结构我们将很容易判断一个字符串是否为回文. 1 // 4. 判断回文字符串 2 char a[9], s[9]; 3 int i, len, mid, next, top; 4 5 gets(a); // 读入一行字符串 6 // a = "qwerewq"; 7 len = strlen(a); 8 mid = len / 2 - 1

最长回文子串算法(字符串处理问题+多种方法解决)【转载】

转载地址:http://blog.csdn.net/kangroger/article/details/37742639 回文是指正着读和倒着读,结果一些样,比如abcba或abba. 题目是要在一个字符串中要到最长的回文子串. 1.暴力法 最容易想到的就是暴力破解,求出每一个子串,之后判断是不是回文,找到最长的那个. 求每一个子串时间复杂度O(N^2),判断子串是不是回文O(N),两者是相乘关系,所以时间复杂度为O(N^3). string findLongestPalindrome(stri

华为机试—回文数判断

判断一个整型数是否为"回文数",如1221,232,5. #include <iostream> using namespace std; void isHuiwen(int number) { int n = 0;//余数. int m = number; while(m != 0) { n = n*10 + m %10; //number的最低位变为n的最高位 m = m /10; } if(n==number) cout << "yes"