【5IC-1】输入一个正整数判别它是否为一回文数

2025-10-25 20:10:22

1、程序如下:

#include<iostream.h>

int f(int i)

{

int j,m=1; 

for(j=1;j<=i;j++)m=m*10;

return m; 

int main()

{

int n,m,i,j,flage=1;

int p[100]; 

cin>>n;

m=n; 

for(i=1;1;i++){

m=m/10;

if(m==0)break; 

}

for(j=1,p[0]=0;j<=i;j++)p[j]=(n-n/f(j)*f(j)-p[j-1])/f(j-1);

for(j=1;j<=i;j++)if(p[j]!=p[i-j+1])flage=0; 

if(flage==1)cout<<"是回文数"<<endl;

else cout<<"不是回文数"<<endl; 

【5IC-1】输入一个正整数判别它是否为一回文数

2、运行结果:

【5IC-1】输入一个正整数判别它是否为一回文数

1、对于任意输入的数字我们首先要判断数位:

for(i=1;1;i++){

m=m/10;

if(m==0)break; 

}

这段代码运行后,i的值即为数字位数。

【5IC-1】输入一个正整数判别它是否为一回文数

2、然后需要将每位数单独提取出来:

for(j=1,p[0]=0;j<=i;j++)p[j]=(n-n/f(j)*f(j)-p[j-1])/f(j-1);

【5IC-1】输入一个正整数判别它是否为一回文数

3、这里的自定义函数是用来计算10的i次方的:

int f(int i)

{

int j,m=1; 

for(j=1;j<=i;j++)m=m*10;

return m; 

【5IC-1】输入一个正整数判别它是否为一回文数

4、最后我们比较对应数位的数字是否相同:

for(j=1;j<=i;j++)if(p[j]!=p[i-j+1])flage=0; 

if(flage==1)cout<<"是回文数"<<endl;

else cout<<"不是回文数"<<endl; 

【5IC-1】输入一个正整数判别它是否为一回文数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢