OpenJudge//////////求满足条件的三位数

描述
编写程序,按从小到大的顺序寻找同时符合条件1和2的所有3位数,条件为:
1.该数为完全平方数
2.该数至少有2位数字相同
例如,100同时满足上面两个条件。
输入
输入一个数n,n的大小不超过实际满足条件的3位数的个数。
输出
输出为第n个满足条件的3位数(升序)

样例输入
1
样例输出
100

#include<iostream>
using namespace std;
bool wan(int);
bool same(int,int,int);
int main()
{
    
    
    int n,sum=0;
    cin>>n;
    int i,a,b,c;
    for(i=100;i<1000;i++)
    {
    
    
        if(wan(i))
        {
    
    
            a=i%10;
            b=(i/10)%10;
            c=i/100;
            if(same(a,b,c)) sum++;
        }
        if(sum==n) {
    
    cout<<i<<endl;break;}
    }
}
bool wan(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 a,int b,int c)
{
    
    
    if(a==b||b==c||a==c) return true;
    else return false;
}

猜你喜欢

转载自blog.csdn.net/weixin_45921943/article/details/104535891