回文数
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
0
-
描述
-
请寻找并输出1至1000000之间的数m,它满足m、m^2和m^3均为回文数。回文数大家都知道吧,就是各位数字左右对称的整数,例如121、676、123321等。满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。
-
输入
- 没有输入 输出
- 输出1至1000000之间满足要求的全部回文数,每两个数之间用空格隔开,每行输出五个数 样例输入
- 样例输出
-
怎么说呢,就是个简单的回文数判断,直接把一个数翻转判断和以前是否一样就可以了,暴力就能过,也是没敢尝试...........
#include<stdio.h>
int judge(long long x)
{
long long tp=0,n=x;
while(x)
{
tp=tp*10+x%10;//倒置
x/=10;
}
if(tp==n)//判断
{
return 1;
}
return 0;
}
int main()
{
long long i,cnt=0;
for(i=1;i<=1000000;++i)
{
if(judge(i)&&judge(i*i)&&judge(i*i*i))//暴力查找
{
++cnt;
if(cnt<5)
{
printf("%d ",i);
}
else
{
printf("%d\n",i);
cnt=0;
}
}
}
return 0;
}