“易语言难题”

    今天逛论坛时,发现了一道易语言难题,在做了之后发现是个很easy的问题,

题目是:有1,2,3,4,5,6,7,8,9这九个数组成三个三位数,每个数字只能用一次,要求保证第二个数是第一数的二倍,第三个数是第一个数的三倍,给大家分享一下易语言的代码:

View Code
 1 .版本 2
 2 .支持库 spec
 3 
 4 .程序集 窗口程序集1
 5 .程序集变量 数组1, 整数型, , "0"
 6 .程序集变量 数组2, 整数型, , "0"
 7 .程序集变量 数组3, 整数型, , "0"
 8 
 9 .子程序 _按钮1_被单击
10 .局部变量 n1, 整数型
11 .局部变量 m1, 整数型
12 .局部变量 局变被搜索文字, 文本型
13 .局部变量 局变搜索文字, 文本型
14 .局部变量 局变位置, 整数型
15 .局部变量 t1, 整数型
16 .局部变量 s1, 整数型
17 
18 .计次循环首 (999, t1)
19     加入成员 (数组1, t1)
20 .计次循环尾 ()
21 .计次循环首 (取数组成员数 (数组1), s1)
22     加入成员 (数组2, 数组1 [s1] × 2)
23     加入成员 (数组3, 数组1 [s1] × 3)
24 .计次循环尾 ()
25 .计次循环首 (取数组成员数 (数组1), n1)
26     .如果真 (数组1 [n1] < 100)
27         到循环尾 ()
28     .如果真结束
29 
30     .如果真 (数组1 [n1] × 2 = 数组2 [n1] 且 数组1 [n1] × 3 = 数组3 [n1])
31         局变被搜索文字 = 到文本 (数组1 [n1]) + 到文本 (数组2 [n1]) + 到文本 (数组3 [n1])
32         .计次循环首 (10, m1)
33             局变搜索文字 = 到文本 (m1 - 1)
34             局变位置 = 寻找文本 (局变被搜索文字, 局变搜索文字, , 假)
35             局变位置 = 寻找文本 (局变被搜索文字, 局变搜索文字, 局变位置 + 1, 假)
36             .如果真 (局变位置 ≠ -1)
37                 跳出循环 ()
38             .如果真结束
39 
40         .计次循环尾 ()
41         .如果真 (局变位置 ≠ -1)
42             到循环尾 ()
43         .如果真结束
44 
45         .如果真 (寻找文本 (局变被搜索文字, 到文本 (0), , 假) ≠ -1)
46             到循环尾 ()
47         .如果真结束
48 
49         调试输出 (数组1 [n1], 数组2 [n1], 数组3 [n1])
50     .如果真结束
51 
52 .计次循环尾 ()

下面是我写的c++求解的代码,很简单。

View Code
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int check(int a)
 6 {
 7     int array[10]={0};
 8     for(int i=1;i<=3;i++)//检查这三个数中出现的0~9中的数
 9     {
10          array[(i*a)/100]=1;
11          array[((i*a)%100)/10]=1;
12          array[(i*a)%10]=1;
13     }
14     for(int j=1;j<=9;j++)
15     {
16         if(array[j]==0)
17             return 0;
18     }
19     return 1;
20 }
21 int main()
22 {
23     for(int i=123;i<=329;i++)
24     {
25         if(check(i))
26         {
27             cout<< i<<"\n"<< 2*i<<"\n" <<3*i<<endl;
28         }
29     }
30     return 0;
31 }
posted @ 2013-04-24 16:48  醉剑客  阅读(440)  评论(0编辑  收藏  举报