测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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

填空题 中等

题目描述

求满足条件的3位数

编写程序,按从小到大的顺序寻找同时符合条件1和2的所有3位数,条件为:

1.该数为完全平方数

2.该数至少有2位数字相同

例如,100同时满足上面两个条件。

时间限制:1000

内存限制:65536

输入

输入一个数n,n的大小不超过实际满足条件的3位数的个数。

输出

输出为第n个满足条件的3位数(升序)

参考答案

#include <iostream> using namespace std; typedef long long ll; #define A 10+5 bool judge (int ); bool same(int); int i,j=0; int main() { int n; cin>>n; int count=0; for(j=100;j<=999;j++) { if(judge(j)&&same(j)) { count++; } if(n==count) { cout<<j<<endl; break; } } return 0; } bool judge (int n) { int i; for(i=10;i<=32;i++) { if(n==i*i) return true; if(i*i>n) return false; } return false; } bool same (int n) { int a[10]={0}; while (n) { a[n%10]++; n/=10; } for(int i=0;i<=9;i++) { if(a[i]>=2)return true; } return false; } }
上一题 下一题