Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2538550
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2011-05-05 11:50:13

    找出11-999之间的所有三重回文数字。所谓三重回文数a是指a,a*a,a*a*a都是回文数字。
    我们解答这些问题的时候,需要使用穷举法,对每一个数字进行穷举计算,判断该数字时候是回文数字。因此编写代码如下:
  1. #include <stdio.h>

  2. long reverse(int n)
  3. {
  4.   long m,j=0;
  5.   m = n;
  6.   while(m){
  7.     j = j*10 + m%10;
  8.     m = m/10;
  9.   }

  10.   return j;
  11. }

  12. long isCircle(long n)
  13. {
  14.   long m;
  15.   m = reverse(n);
  16.   if(m == n)
  17.     return 1;
  18.   else
  19.     return 0;
  20. }

  21. void palindrome(int low, int high)
  22. {
  23.   long i;
  24.   for(i=low; i<=high; i++){
  25.     if(isCircle(i) && isCircle(i*i) && isCircle(i*i*i))
  26.       printf("%ld ",i);
  27.   }
  28. }


  29. int main(int argc, char *argv[])
  30. {
  31.   printf("the palindrome numbers between 11~999 are\n");
  32.   palindrome(11,999);
  33.   printf("\n");

  34.   return 0;
  35. }
程序执行结果如下:
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) |
0

上一篇:进程的创建例子

下一篇:vfork()函数的使用

给主人留下些什么吧!~~