C++程序,判断一个数是不是为回文数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++程序,判断一个数是不是为回文数相关的知识,希望对你有一定的参考价值。

#include <iostream> 

using namespace std; 

int main()    

int m;//待输入的数    

int i=0,j=0;    

int array[10];//将每个数分解    

cout<<"请输入一个数"<<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;

扩展资料

判断语句:

1、if...else if...else语句

  格式:
if(条件1)

语句1 ;

else if(条件2)

语句2 ;

else

语句N;

解释:如果条件1成立,则执行语句1,如果条件1不满足则判断条件2是否成立,如果成立则执行条件2,如果不成立则执行条件N。

2、if中嵌套if
格式:
if(条件1)

if(条件2)

语句2;

else

语句3;


else

语句N;

解释:如果条件1不成立,则执行语句N,如果条件1满足则进入到第一个if中,然后判断条件2,如果成立执行语句2,否则执行语句3。

参考技术A

回文数是一种正读和反读都为同一个数的自然数,设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。

要用C++判断,需要判断自然数的每一位,程序如下:

#include <iostream>

using namespace std;

int main()

    int m;//m为待输入的数

    int i=0,j=0;

    int array[10];//将每个数分解

    cout<<"请输入一个数"<<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;

扩展资料:

C++的语言特点:

1、支持数据封装和数据隐藏

在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。

完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。

2、支持继承和重用

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。

3、支持多态性

采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。

当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。

参考资料来源:

百度百科-C++

百度百科-回文数

参考技术B 说明:本人在学C语言,看到您的问题,不知道什么是“回文数”,随百度,接着就有源码了,先把您的问题回答了,接着再研究,
所以以下源码是复制的,还望见谅(参考:“回文数”的百度百科)
-------------------------------------------------分割线--------------------------------------------------

C源码如下:
#include<stdio.h>
intx,y;
separate(int*data,intn)

inti,j;
y=0;
while(n!=0)

*(data+y)=n%10;n=n/10;y++;

*(data+y)='\0';
for(i=0,j=y-1;i<=j;i++,j--)

if(*(data+i)==*(data+j))
printf("%d是回文!!!\n",x);break;

else
printf("%d不是回文!\n",x);break;



voidmain()

inta[99];
printf("请输入一个正整数:");
scanf("%d",&x);
separate(a,x);

--------------------------------------------------分割线-----------------------------------------------

C++如下:
#include<iostream>
using namespace std;
bool symm(long m)

long temp = m,n=0;
while (temp)

n = n*10+temp%10;
temp = temp/10;

return (m == n);

int main(int argc, _TCHAR* argv[])

long m;
cout<<"请输入一个整数:";
cin>>m;
cout<<"输入了"<<symm(m)<<"个回文数!";
return 0;
本回答被提问者和网友采纳
参考技术C #include<iostream>
using namespace std;

int check(int num)//求出你输进的那个数的倒序是多少,如:123,返回的是:321
int sum=0;
while(num>0)
sum=sum*10+num%10;
num/=10; 


return sum ; 
 

int main()
int num;
cout<<"\\nInpout your num:  ";
cin>>num;

if(check(num)==num)
  cout<<"Yes ,it is";
else
  cout<<"NO,sorry";
  
return 0;  

参考技术D #include <iostream>
using namespace std;
int main()
int n,s,x=0;
cin>>n;
s=n;
while(s>0)

x=x*10+s%10;
s=s/10;

if(x==n) cout<<"YES!"<<endl;
else cout<<"NO!"<<endl;
return 0;

如何用C语言判断一个数是不是为递增数

任意输入一个正整数,输出这个数是不是递增数。递增数的定义为:对于n=d1d2d3…dk,满足di<=di+1(1<=i<=k-1)

编程思想。1.根据定义,递增数就是低位数字大于等于高位数字。2.一个整数可以通过模十取余得到个位数字,通过除十取整得到去掉个位数的整数。3.比较个位跟十位数字,如果个位小于十位,就不是递增数。如果个位大于十位,是递增数。 参考技术A int main()

char num = '\\0';
int count = 0;
int buff[50] = 0;
while (scanf("%c", &num) && num!='\\n')

buff[count] = num - '0';
if (count == 0)

++count;
continue;

if (buff[count] < buff[count - 1])

printf("不是递增数");
return -1;

++count;

printf("是递增数");
  return 0;

其实...简单判断一下就行了...昨天我是刚好练习写了一下排序算法

就想着直接用了  但是没必要

参考技术B int main()

/*  //字符数组方法 
char ch[20];
scanf("%s",ch);
int i,n=ch[0],yes=1;
for(i=1;ch[i]!='\\0';i++)

if(ch[i]-1==n)

n++;

else

yes=0;
break;


if(yes==1) printf("yes");
else printf("no");*/

//数字分解方法 
int n,s;
scanf("%d",&n);
s=n%10;
n/=10;
while(n>0)

if(n%10==s-1)

s=n%10;
n/=10;

else

printf("no");
return 0;


printf("yes");
return 0;

本回答被提问者采纳
参考技术C 如果你的输入是一个long或int,依次对10取模,得到的结果存在临时变量tmp中,然后与之前的变量比较大小,如果大就继续取模,否则直接跳出.
如果你的输入是一个字符串,就从前到后依次比较字符的ascii码大小,如果后一个比前一个大就继续,否则就跳出
参考技术D #include <stdio.h>
#include <string.h>
#define MAXLEN 256
int func(const char* str)
    for(int i = 1;i < strlen(str);i++)
        if(str[i-1] > str[i])
            return 0;
    return 1;

int main(int argc, char** argv)
    char s_num[MAXLEN];
    scanf("%s", s_num);
    printf("%s\\n", func(s_num)?"Yes":"No");
    return 0;

以上是关于C++程序,判断一个数是不是为回文数的主要内容,如果未能解决你的问题,请参考以下文章

C语言:判断一个数是不是为回文数,要求如下:

C语言怎么判断一个数是不是是回文数?

用C语言判断一个数是不是是回文数(不用循环语句)

请编写Python程序完成以下要求:提示用户从键盘上输入一个数num,判断num是不是为回文数?

python判断是不是为回文数

python判断一个数是不是为回文数