C++:编写一个程序,判断一个整数是否为回文数

要求:定义和调用函数bool isPlindrome(int n) 若是回文数,返回true 。不是则返回false。回文数是指正读和反读都相同的数,如:616,7227,是回文数

#include <iostream>
using namespace std;
bool isPlindrome(int n)
{
int a[20]={0};
while(n)
a[++a[0]]=n%10,
n/=10;
int l=1,r=a[0];
for(;l<r;l++,r--)
if(a[l]!=a[r])
return false;
return true;
}
int main()
{
int x;
for(;;)
{
cout<<"输入一个数:";
cin>>x;
if(isPlindrome(x))
cout<<x<<" 是回文数\n";
else cout<<x<<" 不是回文数\n";
}
return 0;
}

 下面是运行结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-16
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
bool isPlindrome(int n){
char a[11],b[11];
itoa(n,a,10);
strcpy(b,a);
if(strcmp(strrev(a),b)==0) return true;
else return false;
}
void main(void){
int m=123454321,n=1234565;
if(isPlindrome(m))
printf("%d is a plindrome!\n",m);
else printf("%d is not a plindrome!\n",m);
if(isPlindrome(n))
printf("%d is a plindrome!\n",n);
else printf("%d is not a plindrome!\n",n);
}本回答被网友采纳
第2个回答  推荐于2018-02-27
#include <iostream>
using namespace std;

bool palindrome(char *str)
{
int h=strlen(str);
for(int i=0;i<h/2;i++)
{
if(str[i]!=str[h-i-1])
{
return false;
}
return true;
}

}
int main()
{
char text[180];
cout<<"请输入: ";
cin>>text;
if(palindrome(text))
cout<<"这是一个回文!"<<endl;
else
cout<<"这不是一个回文!"<<endl;
return 0;

}本回答被提问者和网友采纳
第3个回答  2014-03-16
最快的那位 是复制过来的吧? 人家要求输入的int

c++:编一函数int f(int n),功能为判断一个整数n是否为回文数
\/\/参考代码如下:#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;\/\/如果这个数各位数字反向排列所得数依然等...

C++怎么编写一个程序来判断一个整数是否为回文数?
cout<<"这是一个回文!"<<endl;else cout<<"这不是一个回文!"<<endl;return 0;}

C++从键盘输入一个正整数,如何判断是否为回文数?
输入以下程序即可判断:int len=strlen(s)-1,i;bool judge=true;for(i=0;iif(s[i]!=s[len-i]){ judge=false;break;} 1、“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(p...

用C++,如何判断某个数是不是回文数?
1、打开Visual Studio软件,准备好一个新的空白cpp文件,用于稍后编写代码:2、这里定义一个名为palindrome的函数,用来处理判断回文的过程,判断的大致思路就是将一个数反着排列一遍,如果和原先的数一样,那么就是回文数,排列过程用到了余数和整除:3、最后保存一下文件,按住crtl+F5运行程序查看结果,...

C++语言 输入一个正整数,判断它是否是回文数
#include<stdlib.h> int main(){ int num,k,n=0;printf("请输入一个数:");scanf("%d",&num);k=num;while(k>0){ n=n*10+k%10;k=k/10;} if(n==num)printf("%d是回文数",n);else printf("No!它不是回文数!");return0;} ...

C++程序,判断一个数是否为回文数
<<endl;cin>>m;while(m){ array[i++]=m%10;m\/=10;} i--;\/\/while中的多自加了一个 while(i>j){ if(array[j++]!=array[i--])\/\/首位递增,末位递减,直到首位不再小于末位 break;} if(j>i)cout<<"是回文数"<<endl;else cout<<"不是回文数"<<endl;return 0;} ...

...10~2000之间所有的回文数,判断一个数是否为回文数。要用函数fun(int...
int nonre(lint n)\/\/判断给定的整数是否为回文数 { if(n>10 && n<2000){ if(re(n)==n)return 1;\/\/是返回1 else return 0;\/\/不是返回0 } return 0;\/\/不是返回0 } void main(){ int n,m;int count=0;printf("please input a number optionaly:");scanf("%ld",&n);printf(...

用C++中的数组知识写一个程序:输入一个数,判断是否是回文数,若是则输出...
include <stdio.h>int main(){int m,a[20];int i;scanf("%d", &m );i=0;do {a[i++]=m%10;m \/= 10 ;}while( m ) ;m=i;for( i=0;i<m\/2;i++ )if ( a[i] != a[m-i-1] )break;if ( i>=m\/2 )printf("是回文\\n");elseprintf("不是回文\\n");return 0;...

C++判定回文数
\/*判断iData是不是回文数*\/ if (IsStrReverse(iData))iReverse = iData;else { \/*以iData为中心向两侧得到第一个回文数*\/ for (int i = 1; ; ++i){ if(IsStrReverse(iData+i)){ iReverse = iData + i;break;} if (IsStrReverse(iData-i)){ iReverse = iData - i;break;} } }...

编写一个程序,判断一个四位整数是否为回文数,就是顺度与逆读得出的数 ...
1、这个程序的效率高 include <iostream> include <vector> include <string> using namespace std;bool substring_is_huiwen(string s,int start,int end) \/\/判断的具体实现函数 { if (start >= end) \/\/一个字符与空字符的特殊情况 return true;if (s[start] == s[end])return subst...

相似回答