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

 我来答
娱乐小八卦啊a
高粉答主

2019-11-10 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117857

向TA提问 私信TA
展开全部

#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。

圆圆胖胖Z
2019-11-20 · TA获得超过3557个赞
知道答主
回答量:68
采纳率:50%
帮助的人:1.6万
展开全部

回文数是一种正读和反读都为同一个数的自然数,设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++

百度百科-回文数

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
燃香小狼
推荐于2017-10-07 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:70.5万
展开全部
说明:本人在学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;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暮影1994
2014-11-03 · TA获得超过2338个赞
知道大有可为答主
回答量:1215
采纳率:60%
帮助的人:398万
展开全部
#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;  
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Yehaozhan
2020-05-04
知道答主
回答量:23
采纳率:0%
帮助的人:1.2万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式