【5IC-1】输入一个正整数判别它是否为一回文数
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;
}

2、运行结果:

1、对于任意输入的数字我们首先要判断数位:
for(i=1;1;i++){
m=m/10;
if(m==0)break;
}
这段代码运行后,i的值即为数字位数。

2、然后需要将每位数单独提取出来:
for(j=1,p[0]=0;j<=i;j++)p[j]=(n-n/f(j)*f(j)-p[j-1])/f(j-1);

3、这里的自定义函数是用来计算10的i次方的:
int f(int i)
{
int j,m=1;
for(j=1;j<=i;j++)m=m*10;
return m;
}

4、最后我们比较对应数位的数字是否相同:
for(j=1;j<=i;j++)if(p[j]!=p[i-j+1])flage=0;
if(flage==1)cout<<"是回文数"<<endl;
else cout<<"不是回文数"<<endl;

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