回文数:简单点讲,就是从左至右念和从右至左念都相同的数字。
首先,我们需要的判断一个数字是否是回文数
int main()
{
int m,i,n=0;
cin>>m;
i=m;
while(i>0)
{
n=n*10+i%10;
i=i/10;
}
if(m==n)
cout<<m<<"是回文数。"<<endl;
else
cout<<m<<"不是回文数"<<endl;
return 0;
}
然后,我们需要计算某一个区间内的回文数数量(可以通过循环结构来实现)
int main()
{
int m1,m2,k=0;
cin>>m1>>m2;
for(int i=m1;i<=m2;i++)
{
if(i是回文数) //括号中的代码能判断一个数字是否为回文数
k+=1;
}
return 0;
将上述步骤中的代码合并起来就是:
#include<iostream>
using namespace std;
int main()
{
int m1,m2,k=0,j;
cin>>m1>>m2;
for(int i=m1;i<=m2;i++)
{
j=i;
int n=0;
while(i>0)
{
n=n*10+i%10;
i=i/10;
}
i=j;
if(j==n)
{
k+=1;
cout<<n<<"是回文数"<<endl;
}
}
cout<<"一共有"<<k<<"个回文数"<<endl;
return 0;
}
接下来,我使用函数的方法来写这段代码
#include<iostream>
using namespace std;
bool symm(int m)
{
int n=0,k=0,i=m;
while(i>0)
{
n=n*10+i%10;
i=i/10;
}
return n==m;
}
int main()
{
int m1,m2,n;
cin>>m1>>m2;
int k=0;
for(int i=m1;i<=m2;i++)
{
if(symm(i)==1)
{
cout<<i<<"是回文数"<<endl;
k+=1;
}
}
cout<<"在"<<m1<<"~"<<m2<<"中,"<<"有"<<k<<"个回文数"<<endl;
return 0;
}