找出11-999之间的所有三重回文数字。所谓三重回文数a是指a,a*a,a*a*a都是回文数字。
我们解答这些问题的时候,需要使用穷举法,对每一个数字进行穷举计算,判断该数字时候是回文数字。因此编写代码如下:
- #include <stdio.h>
-
-
long reverse(int n)
-
{
-
long m,j=0;
-
m = n;
-
while(m){
-
j = j*10 + m%10;
-
m = m/10;
-
}
-
-
return j;
-
}
-
-
long isCircle(long n)
-
{
-
long m;
-
m = reverse(n);
-
if(m == n)
-
return 1;
-
else
-
return 0;
-
}
-
-
void palindrome(int low, int high)
-
{
-
long i;
-
for(i=low; i<=high; i++){
-
if(isCircle(i) && isCircle(i*i) && isCircle(i*i*i))
-
printf("%ld ",i);
-
}
-
}
-
-
-
int main(int argc, char *argv[])
-
{
-
printf("the palindrome numbers between 11~999 are\n");
-
palindrome(11,999);
-
printf("\n");
-
-
return 0;
-
}
程序执行结果如下:
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ gcc 6.9.c
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
the palindrome numbers between 11~999 are
11 101 111
阅读(3891) | 评论(0) | 转发(0) |