[英]Python For Loop Homework
所以这个问题无论如何都不难,只是措辞令人困惑。 我已经尝试了 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
是的,如果有人想知道的话; 我的课程正在使用自动检查系统;-;
方法很简单
test = range(10,99)
for num in test:
prod = 1
for digit in str(num): prod = prod * int(digit)
if num == 2*prod:
print(num)
有趣的事实:只有 36 人符合此要求
IIUC,你想要:
for i in range(10, 100):
tens, units = divmod(i, 10)
if tens*units*2 == i:
print(i)
我没有给你代码(反正其他人已经这样做了)而是解释你的程序有什么问题(我认为):
input
你的程序只是永远等待从未提供的输入; 相反,您可能只需要底部的for num in range(10, 100)
循环def
定义一个函数,而不是复制代码*2
,而不是**2
//
和 modulo %
直接访问它们我相信你会通过这些提示得到正确的结果(而不仅仅是复制完整的代码)。
如果我正确理解了要求,则将从用户那里获得给定的数字,并且两位数字必须与其匹配(不是他们自己):
number = int(input("given number: "))
for n in range(10,100):
d,u = divmod(n,10)
if d*u*2 == number:
print(n)
示例运行:
given number: 36
29
36
63
92
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.