[题目描述]
3025 这个数具有一种独特的性质:将它平分为二段,即 30 和 25,使之相加后求平方,即 (30+25)^2,恰好等于 3025 本身。请求出具有这样性质的全部四位数。
输入格式:
此题没有输入。
输出格式:
输出满足题意的全部四位数(从小到大输出,且数之间用两个空格分开)。
样例输入
样例输出
数据范围:
对于 100% 的数据,保证都符合题目要求。
提示说明:
根据题意可以采用穷举法,对所有四位数进行判断,从而筛选出符合这种性质的四位数。具体算法实现,可任取一个四位数,将其截为两部分,前两位为 a,后两位为 b,然后套用公式计算并判断。
来源/分类(难度系数:一星)
完整代码展示:
# coding=utf-8
c=[]
for i in range(1000,10000):
a=i//100
b=i%100
if (a+b)**2==i:
c.append(i)
for j in range(0,len(c)-1):
print(c[j],end=" ")
print(c[-1])
代码解释:
“c=[] ”,建立一个空列表c,用于储存符合条件的四位数。
“for i in range(1000,10000):
a=i//100
b=i%100
if (a+b)**2==i:
b.append(i) ”,依次遍历1000~9999的所有数,令a=i//100,b=i%100。查找符合条件的i(即(a+b)**2==i),并将其添加进列表c中。
“for j in range(0,len(c)-1):
print(c[j],end=" ")
print(c[-1]) ”,先依次打印c中除c[-1]外的所有元素,且每两个元素之间插入一个空格。最后打印c[-1]。
运行效果展示:
(声明:以上内容均为原创)