自反数:一个整数的各位数字反序排列后得到的整数与原数相等的数,叫做自反数。
思路:创建函数来判断所输入的整数是否为自反数。并用循环来实现对大于基数base的自反数的查找。利用计数器k来控制所查找出自反数的个数。
核心为自反数的判读,即对一个数的反序排列。
代码如下:
#include<iostream>
using namespace std;
bool fun(int n) //判断这个是否为自反数
{
int i,r=0,t=n;
for(i=0;t!=0;i++) //实现对一个整数的反序排列
{
r=r*10+t%10;
t/=10;
}
if(r==n)return 1;
return 0;
}
int main()
{
int base,num;
cout<<"请输入基数base来查找大于基数的自反数,并输入所要查找基数的个数num:\n基数base:";
cin>>base;
cout<<"个数num:";
cin>>num;
for(int i=base,k=0;k<num;i++)
{
if(fun(i)){
cout<<i<<'\t';
k++;
if(k%5==0)cout<<'\n'; //每行输出五个
}
}
return 0;
}