OpenJudge计算概论-求满足条件的3位数

本文提供了一个程序,用于查找所有满足特定条件的3位完全平方数,这些条件包括数值至少有两个相同的数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

    100
==========================================================================*/
 1 #include<iostream>
 2 #include<math.h>
 3 using namespace std;
 4 int main()
 5 {
 6     int n;
 7     int i,t;
 8     int x,y,z;
 9     int xx,yy,zz;
10     cin>>n;
11     for(i=100;i<1000;i++)  //检查每一个三位数,判断其是否符合要求
12     {
13         t=sqrt(i);
14         if(t*t==i)//这个if语句的条件语句是判断i是否完全平方数 
15         {//下面把i的各个位拆开来检查有否相同位。 
16             x=i/100;
17             y=(i-x*100)/10;
18             z=i%10;
19             xx=0;
20             yy=0;
21             zz=0;
22             xx=(x==y);
23             yy=(x==z);
24             zz=(y==z);
25             if(xx+yy+zz>=1)
26             {
27                 n--;
28                 if(n==0)//当发现到第n个满足两个条件的数时停止。 
29                 {
30                     cout<<i<<endl;
31                     break;
32                 }
33             }
34         }
35     }
36     return 0;
37 }

 

转载于:https://www.cnblogs.com/huashanqingzhu/p/3465951.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值