请在源文件hailstone.py中 #todo1下面添加代码;
1.2 完成函数find_longest_hailstone(n),返回区间[2, n+1)中hailstone序列最长的长度及相应的整数。
请在源文件hailstone.py中 #todo2下面添加代码;
def hailstone(k):
"""return the length of hailstone of k.
"""
length = 1
# todo1: 请在下面补写代码,完成函数功能
return length
def find_longest_hailstone(n):
'''返回区间[2, n+1)中hailstone序列最长的整数值及其序列长度
'''
value, longest = 1, 1
# todo2: 请在下面补写代码,完成函数功能
return value, longest
def main():
n = 100000 #int(input("Please enter a positive number:"))
longest, value = find_longest_hailstone(n)
print(f"hailstone: range={n} longest={longest} value={value}")
if name == "main":
measure_time(main, 1)
你题目的解答代码如下:
def hailstone(k):
"""return the length of hailstone of k. """
length = 1
# todo1: 请在下面补写代码,完成函数功能
while k!=1:
length += 1
if k%2==1:
k = k*3+1
else:
k = k/2
return length
def find_longest_hailstone(n):
'''返回区间[2, n+1)中hailstone序列最长的整数值及其序列长度'''
value, longest = 1, 1
# todo2: 请在下面补写代码,完成函数功能
for i in range(2,n+1):
a = hailstone(i)
if a > longest:
longest = a
value = i
return value, longest
def main():
n = 100000 #int(input("Please enter a positive number:"))
longest, value = find_longest_hailstone(n)
print(f"hailstone: range={n} longest={longest} value={value}")
if __name__ == "__main__":
# measure_time(main, 1)
main()
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!