首页 > 代码库 > 1.13.14

1.13.14

14:求满足条件的3位数

描述

编写程序,按从小到大的顺序寻找同时符合条件1和2的所有3位数,条件为:
1.该数为完全平方数
2.该数至少有2位数字相同
例如,100同时满足上面两个条件。

输入输入一个数n,n的大小不超过实际满足条件的3位数的个数。输出输出为第n个满足条件的3位数(升序)样例输入

1

样例输出

100
 1 #include <cstdio>
 2 #include <cmath>
 3 #include <cstring>
 4 #include <algorithm>
 5 using namespace std;
 6 int k(int n)
 7 {
 8     int z,a[10];
 9     memset(a,0,sizeof(a));
10     while(n>0)
11     {
12         
13         a[n%10]++;
14         n/=10;
15     }
16     sort(a,a+10);
17     return a[9];
18 }
19 bool ss(int n)
20 {
21     int x=sqrt(n);
22     if(x*x==n) return true;
23     return false;
24 }
25 int main()
26 {
27     int n,x=0,y=1,z;
28     scanf("%d",&n);
29 
30     while(x<n)
31     {
32         if(k(y)>=2&&ss(y)==true)
33         {
34             x++;
35             z=y;
36         }
37         y++;
38     }
39     printf("%d",z);
40     return 0;
41 }

 

1.13.14