Python for循环作业求助:寻找等于自身各位乘积两倍的两位数
问题描述
这个问题本身难度不高,只是表述方式容易造成混淆。我已经尝试了3种解决方案,全部没有通过校验。我已经付出了实际努力,因此希望能得到大家的帮助,问题详情如下:
使用
for循环编写对应程序:逐列输出所有满足「数值本身等于组成该数的各位数字的乘积的两倍」的两位数。
以下是我目前已经尝试过的3种解决方案:
- 方案1
num = int(input("Enter a two-digit number: ")) digitArr = [] for i in str(num): digitArr.append(i) result = 1 for j in digitArr: result = result * int(j) result = result ** 2 #here for i in range(10, 100): tempDigitArr = [] for j in str(i): tempDigitArr.append(j) tempResult = 1 for k in tempDigitArr: tempResult = tempResult * int(k) tempResult = tempResult ** 2 #here if tempResult == result: print(i) tempResult = 1 continue else: tempResult = 1 continue
- 方案2
num = int(input("Enter a two-digit number: ")) digitArr = [] for i in str(num): digitArr.append(i) result = 1 for j in digitArr: result = result * int(j) result = result ** 2 #here for i in range(10, 100): tempDigitArr = [] for j in str(i): tempDigitArr.append(j) tempResult = 1 for k in tempDigitArr: tempResult = tempResult * int(k) tempResult = tempResult ** 2 #here if tempResult == result: print(i) tempResult = 1 continue else: tempResult = 1 continue
- 方案3
num = int(input("Enter a two-digit number: ")) digitArr = [] for i in str(num): digitArr.append(i) result = 1 for j in digitArr: result = result * int(j) for i in range(10, 100): tempDigitArr = [] for j in str(i): tempDigitArr.append(j) tempResult = 1 for k in tempDigitArr: tempResult = tempResult * int(k) if tempResult == result: print(i) tempResult = 1 continue else: tempResult = 1 continue
补充说明:我所学的这门课程使用自动校验系统批改作业 ;-;
错误分析与正确实现
现有代码核心问题
- 冗余输入逻辑:题目要求遍历所有两位数筛选符合条件的结果,不需要用户额外输入数值,输入步骤会直接导致自动校验失败。
- 运算逻辑错误:前两份代码将「乘积的两倍」错误实现为「乘积的平方」,
**2是平方运算,两倍应该用*2。 - 判断逻辑错误:所有代码都以输入数值的各位乘积为比对基准,而非判断当前遍历的两位数是否满足「自身值 = 自身各位数字乘积 * 2」的要求。
- 冗余代码:不需要额外数组存储各位数字,也不需要多余的
continue和临时变量重置逻辑。
正确代码
# 遍历所有两位数 for num in range(10, 100): # 拆分十位、个位数字 tens = num // 10 units = num % 10 # 计算各位乘积的两倍 target = (tens * units) * 2 # 符合条件就输出 if num == target: print(num)
输出结果
运行后逐列输出符合条件的两位数:
12 24 36 48
内容的提问来源于stack exchange,提问作者Husayn Gokal
相关产品推荐
相关产品推荐

