首页 > 解决方案 > 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
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
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

是的,如果有人想知道的话;我的课程正在使用自动检查系统;-;

标签: pythonlistfor-loop

解决方案


该方法非常简单

test = range(10,99+1)

for num in test:

    prod = 1
    for digit in str(num): prod = prod * int(digit)

    if num == 2*prod:
        print(num)

有趣的事实:只有 36 人符合此要求


推荐阅读