Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4462804
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-09-20 14:20:24

题目:
     请在小于99999的正整数中找符合下列条件的数。它既完全平方数,又有两位数字相同,如:144 676,用C语言编写(不能用数字转换成字符)

  1. #include <stdio.h>
  2. #include <math.h>

  3. int havesamenum(int num)
  4. {
  5.     int i = 0, j;
  6.     char a[10] = {0};//a initial
  7.     while(num > 0)
  8.     {
  9.         j = num % 10;
  10.         a[j] += 1;
  11.         num = num / 10;
  12.     }
  13.     
  14.     for(i=0;i<10;i++)
  15.     {
  16. if(a[i]>1)
  17. return 1;
  18.     } 
  19.     return 0;
  20. }

  21. int main(void)
  22. {
  23.     int i,j,m;
  24.     m =(int)sqrt(99999);
  25.     for(i=1;i<m;i++)
  26.     {
  27.         j =i*i;
  28.         if(1 == havesamenum(j))
  29.             printf("%6d\t",j);
  30.     }
  31.     return 0;
  32. }

  1. ywx@ywx:~/Desktop/yu$ ./huawei
  2.    100     121     144     225     400     441     484     676     900     1156     1225     1444     1521     1600     1681     2025     2116     2209     2500     3136     3364     3600     3844     3969     4225     4489     4624     4900     5625     5776     5929     6400     6561     6889     7225     7744     8100     8281     8464     8836     9409     10000


阅读(1527) | 评论(0) | 转发(0) |
0

上一篇:笔试题每日几练 1

下一篇:2 华为笔试题

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