码迷,mamicode.com
首页 > 编程语言 > 详细

c语言实现求解这样的6位数:SQRT(6位数)=3位数,9个数字互不相同(SQRT表示开平方)

时间:2018-11-15 19:37:00      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:std   数字   重复   出现   ++   bsp   print   避免   style   

(1)设置10个元素的状态数组p,记录数字0~9在6位数和3位数中出现的情况。数组元素都赋值1,表示数字0~9没有被使用过。

(2)对尝试的每一个数3位数x,6位数=x*x,并取其各个位数字,数字作为数组的下标,若对应元素为1,则该数字第一次出现,

将对应的元素赋值为0,表示该数字已经出现一次。否则,若对应元素为0,则说明有重复数字,结束这次尝试。

(3)当状态数组p中9个元素为0时,就找到了问题的解。但这样判定有解,需要扫描一遍数组p。为避免这个步骤,

设置一个计数器k,在取x,x*x各个位数的过程中记录不同数字的个数,当k=9时就找到了问题的解。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     long x;
 5     int p[10];
 6     int i,t,k;
 7     int num=0;
 8     int n,f,y,m;
 9     for(x=100;x<=999;x++)
10     {
11         for(i=0;i<=9;i++)
12             p[i]=1;
13             y=x*x; //y表示6位数
14             f=y;   //将y暂时存放在f中
15             n=x;   //n表示3位数
16         if(f<=999999)
17         {
18             k=0;
19         for(i=1;i<=6;i++)
20         {
21             t=n%10;
22             n=n/10;
23             m=f%10;
24             f=f/10;
25             if(m==t)
26             {
27             k=0;
28             break;
29             }
30             if(i<4)
31                if(p[t]==1)
32                {
33                 p[t]=0;
34                 k++;
35                }
36              else
37               {
38                k=0;
39                break;
40               }
41               if(p[m]==1)
42               {
43                p[m]=0;
44                k++;
45               }
46               else
47               {      
48                k=0;
49                break;
50               }
51         }
52             if(k==9)
53                 {
54                  num=num+1;
55                  printf("%ld\t%d\n",x,y);
56                 }
57         }
58         else
59             continue;
60     }
61             printf("\n");
62             printf("%d\n",num);
63     return 0;
64 }

 

c语言实现求解这样的6位数:SQRT(6位数)=3位数,9个数字互不相同(SQRT表示开平方)

标签:std   数字   重复   出现   ++   bsp   print   避免   style   

原文地址:https://www.cnblogs.com/javaexplorer/p/9965421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!