【发布时间】:2022-10-18 11:02:14
【问题描述】:
我刚刚完成(我正在查看旧代码并发现了这个)但实际上这是最终代码 最后更新:现在一切都好 多亏了这个奇数公式。 n个奇数的和是n^2 我们是如何得出这个公式的
- 前 1 个奇数 = 1 总和 = 1 = 1^2
- 前 2 个奇数 =1,3 和 = 4 = 2^2
- 前 3 个奇数 = 1,3,5 和 = 9 = 3^2
- 前 4 个奇数 =1,3,5,7 和 = 16 4^2
- 前 5 个奇数 = 1,3,5,7,9 总和 = 25 =5^2
- 因此 n 个奇数的总和 = n^2
import random,os
userI =True
os.system("cls")
def randomOddNumber(a,b):
a = a // 2
b = b // 2 - 1
number = random.randint(a,b)
number = (number * 2) + 1
return number
while userI==True:
userInput = int(input("Please input a 4 digit number: "))
compNumber = random.randint(1000, 9999)
count = 0
while userInput != compNumber:
if (userInput % 2) == 0:
compNumber= random.randrange(0, 10000, 2)
count=count+1
else:
compNumber = randomOddNumber(0,9999)
count =count+1
print("Match was created on the", count, "attempt.")
ex = False
while ex == False:
userAwnser = input("Would you like to play again?: ")
if userAwnser == "no"or userAwnser=="No":
userI = False
ex = True
elif userAwnser == "yes"or userAwnser=="Yes":
userI = True
ex = True
os.system("cls")
else:
print("Error Not a valid awnser")
ex = False
【问题讨论】:
-
这里有很多问题。
input返回一个字符串,而不是 4 个整数。您将需要输入一个字符串,然后将其转换为整数并确保它在 1000 和 9999 之间。然后,您真的不需要随机猜测。你想从中间开始(5500),让用户告诉你“更高”和“更低”,然后分割差额。它应该不超过 14 次猜测。 -
a,b,c,d = [int(digit) for digit in input("enter a 4 digit number")]
标签: python artificial-intelligence