gpt4 book ai didi

python - 解决Python之谜

转载 作者:行者123 更新时间:2023-11-30 21:59:08 26 4
gpt4 key购买 nike

我要解决的问题:谜语人正在计划他的下一次冒险宾夕法尼亚大道。宾夕法尼亚州的地址是一个四位数的号码以下属性。

所有四位数字都不同,千位数字是十位数字的三倍,数目为奇数,且各位数字之和为 27。

因此,我创建了一个 for 循环,检查每个四位整数并将值放入占位符(即千位、百位等)中,并使用条件 if 语句来满足条件。但我的问题是,当我运行代码时,IDE 没有给我错误,但它最后没有打印我的语句。我无法弄清楚我的代码出了什么问题。

address = 0                     
thousand = 0
hundred = 0
ten = 0
one = 0

for address in range(1000,9999+1):

thousand = (address/1000)%10
hundred = (address/100)%10
ten = (address/10)%10
one = (address%10)

if (thousand != hundred) and (thousand != ten) and (thousand != one) and (hundred != ten) and (hundred != one) and (ten !=one):
if thousand == (3*ten):
if one % 2 != 0:
if thousand+hundred+ten+one == 27:
print("The address is: ",address, "Pennsylvania Ave.")

它运行但打印语句不显示。

最佳答案

All four digits are different, The digit in the thousands place is three times the digit in the tens place, The number is odd, and The sum of the digits is 27.

  • 千位数字是十位数字的三倍:有效组合为 3x1x、6x2x、9x3x。
  • 数字之和为 27:只有 9x3x 是可能的,因为 27 - (6 + 2) > 8+7,即最大剩余数字。事实上 27 - (9 + 3) = 15。剩下的数字可以是 9,6 或 8,7
  • 所有四个数字都不同:9,5 不是一个选项。号码是 9837 或 9738。
  • 数字是奇数:9837

这里有些铅笔和纸比 for 循环效果更好。

话虽这么说,请记住 / 是 Python 3 中真正的除法运算符,无论类型如何。例如,当address = 6754

thousand = (address / 1000) % 10

评估为

thousand = 6.754 % 10

这只是 6.754,而不是您可能希望的 6。要获得 6,请使用整数除法运算符 //:

thousand = (address // 1000) % 10

关于python - 解决Python之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54661607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com