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 }
时间: 2024-10-12 20:35:56