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。
回文数是一种正读和反读都为同一个数的自然数,设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源码如下:
#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;
}
#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;
}
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;
}