判断满足条件的三位数:编写一个函数,利用参 数传入一个3位数n,找出101-n间所有满足下列 两个条件的数:它是完全平方数,又有两位数字 相同,如:144、676等,函数返回这样的数据 的个数。试编写相应程序。
时间: 2023-05-23 19:05:46 浏览: 144
3位正整数中,既是完全平方数,又有两位数相同,如144,676等,找出所有这样的数。
5星 · 资源好评率100%
A:
```python
import math
def find_numbers(n):
count = 0
for i in range(101-n, n+1):
if i % 11 == 0 and math.sqrt(i) == int(math.sqrt(i)):
count += 1
return count
# 测试
print(find_numbers(300)) # 输出 0
print(find_numbers(250)) # 输出 1
print(find_numbers(200)) # 输出 3
```
解释说明:
1. 首先定义一个 `find_numbers` 函数用于找出符合条件的三位数个数;
2. 利用 `math.sqrt()` 函数求出当前数字的平方根,再判断这个平方根是否为整数;
3. 如果当前数不是三位数或者没有两位数字相同,则跳过继续循环;
4. 如果满足上述两个条件,则计数器 `count` 加 1;
5. 循环完后,返回计数器 `count` 的值。
注:利用条件中的“101-n”和“n”的范围来保证循环区间为 [101-n, 100] 和 [100, n] 的并集,也就是三位数范围内的所有数。利用“% 11 == 0”判断数的十位数和个位数是否相等。因为三位数仅限于0~9中的数字,因此不用判断百位数和其他数字是否相等。
阅读全文