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++
百度百科-回文数
所以以下源码是复制的,还望见谅(参考:“回文数”的百度百科)
-------------------------------------------------分割线--------------------------------------------------
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++程序,判断一个数是不是为回文数的主要内容,如果未能解决你的问题,请参考以下文章