标签:
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 }
标签:
原文地址:http://www.cnblogs.com/zouqihan/p/4534452.html