码迷,mamicode.com
首页 > 其他好文 > 详细

wangyifan

时间:2015-05-27 22:26:31      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include <iostream>
 2 #include <cstring>
 3 #define M 20 + 5
 4 using namespace std;
 5 int a[M];
 6 int fun(long long int m)                    //fun函数:
 7 {
 8     memset(a,0,sizeof(a));                  //首先把数组a赋值为0;
 9     while(m != 0)                           //将m各位数字分离
10     {
11         if(a[m % 10] == 0)                  
12             a[m % 10] = 1;                  //将分离的数字作为下标,该下标对应的数组元素改为1,比如m%10 = 3;那么a[3] = 1,代表3已经出现过了;然而再次出现3时a[3]!=0就返回0;代表有重复数字不合题意
13         else
14             return 0;
15         m = m / 10;
16     }
17     return 1;
18 }
19 int gun(long long int n)                //因为a[M]定义的是全局变量,这时可以直接检验j中的数字是否在i中出现过
20 {
21     while(n != 0)
22     {
23         if(a[n % 10] == 1)                  //解释同fun函数
24             return 0;
25         n = n / 10;
26     }
27     return 1;
28 }
29 int main()
30 {
31     long long int i;
32     for( i = 100000; i <= 999999; i ++)                 //遍历i
33     {
34         if(fun(i) == 0)                                 //调用函数fun
35             continue;
36         long long int j = i * i;                         //j = i * i;
37         if(gun(j) == 1)                                  //调用函数gun
38             cout << i << * << i << = << j << endl;
39     }
40     return 0;
41 }

 

wangyifan

标签:

原文地址:http://www.cnblogs.com/zouqihan/p/4534452.html

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