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

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

填空题 容易

题目描述

求满足条件的3位数

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

1.该数为完全平方数

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

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

输入

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

输出

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

样例输入

1

样例输出

100

参考答案

#include <bits/stdc++.h> int main() { printf("floor(50.2) = %f \n", floor(50.2)); printf("floor(0.2) = %f \n", floor(0.2)); printf("floor(-50.2) = %f \n", floor(-50.2)); printf("floor(-0.2) = %f \n", floor(-0.2)); printf("floor(100.2) = %f \n", floor(100.2)); system("pause"); return 0; }

答案解析

#方法二:

#include <iostream>

#include <cmath>

using namespace std;

bool judge(int m)//判断m是不是完全平方数

{

double x=sqrt(m);

if(floor(x)==x)

{

return true;

}

return false;

}

int main()

{

int n;

cin>>n;

int count=0;

for(int i=1; i<=9; i++)

{

for(int j=0; j<=9; j++)

{

for(int k=0; k<=9; k++)

{

int flag1=0,flag2=0;

if(i==j||j==k||k==i)//如果任意两个数相同

{

flag1=1;

}

int s=i*100+j*10+k;

if(judge(s))//判断s是不是完全平方数

{

flag2=1;

}

if(flag1==1&&flag2==1)

{

count++;

if(n==count)

{

cout<<s<<endl;

return 0;

}

}

}

}

}

return 0;

}

上一题 下一题