输入应该是一系列整数对,每行一对。每对构成一个范围,该范围用于进行多个计算,并输出单个整数以及两个初始整数。输入中的两个整数应以单个空格分隔。以下代码仅需一行输入。
我应该进行哪些更改以使其接受多行输入并打印出多行输出?代码是用python3编写的
i,j = input().split(" ")
max_count = 0
n = int(i)
if int(i) >= int(j):
for n in range(int(j), int(i)):
count = 2
while n > 1:
if count > max_count:
max_count = count
if n == 1:
count = 1
elif n % 2 != 0:
n = (3 * n) + 1
count += 1
if n % 2 == 0:
n = n / 2
count += 1
if j > i:
for n in range(int(i), int(j)):
count = 2
while n > 1:
if count > max_count:
max_count = count
if n == 1:
count = 1
elif n % 2 != 0:
n = (3 * n) + 1
count += 1
if n % 2 == 0:
n = n / 2
count += 1
print(i, j, max_count)
以下是我要解决的问题的链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=29&page=show_problem&problem=36
答案 0 :(得分:0)
答案 1 :(得分:0)
这是我的理解:
您的代码工作正常,但只需要一行(或一对)即可输入。您需要一种输入多于一行(或一对)的方法。
在存储python文件的同一目录中创建一个名为“ input.txt”的文本文件。在其中输入所有对,每行一对,然后保存文件。
这样修改代码:
# Opens the text file and imports the sets into a list
with open('input.txt') as f:
input_list = f.read().splitlines()
for pair in input_list:
# Splits the set
i, j = pair.split(' ')
# Put the rest of your code here just as it was ...
max_count = 0
n = int(i)
# And so on ...