输入:
5
30
50
10
70
65
5是紧随其后的数字。
我的代码:
n = int(input())
list = []
i = 0
while len(list) < n:
integer = int(input())
list.append(integer)
i = i + 1
minList = min(list)
integers = list[i - 1] - minList
print(integers)
我想从5个整数中减去最小的数字。
正确的输出: 20 40 0 60 55
我的输出: 0 20 0 60 55
我理解为什么我的输出错误,因为在输入10之前最小的数字是20,但是我不知道如何纠正它。我尝试了不同的方法,但是没有一个起作用。如何从每个整数中减去最小的数字?
答案 0 :(得分:0)
获取输入到列表。使用min()
获取此列表的最小值,然后从每个列表元素中减去最小值:
n = int(input()) # Read number of numbers
lst = []
for _ in range(n):
lst.append(int(input())) # Append to list
min_value = min(lst) # Take the minimum number
final_lst = [abs(x-min_value) for x in lst] # Subtract minimum from each number
答案 1 :(得分:0)
首先收集所有输入,然后找到最小值并打印数字。
n = int(input())
numbers = []
while len(numbers) < n:
integer = int(input())
numbers.append(integer)
smallest = min(numbers)
for number in numbers:
print number - smallest
答案 2 :(得分:0)
size = int(input())
lst = [int(input()) for _ in range(size)]
m = min(lst)
res = [abs(n - m) for n in lst]
答案 3 :(得分:0)
对于像Hackerrank这样的网站,这似乎是一个默认难题...接受所有输入,然后对所有输入执行操作。在仍然收集输入的情况下,请勿混入数据(除非这样做很有意义)。
获取所有数据的一种好方法是:
n = int(input()) # get how many inputs follow
# get n inputs, perform the int() conversion, store as list.
data = list(map(int, (input().strip() for _ in range(n))))
# calculate the min value
min_value = min(data)
# print all reduced values in order each on one line
print( *[x-min_value for x in data], sep = "\n")
# or comma seperated:
print( *[x-min_value for x in data], sep = ",")
输出:
# print with sep="\n"
20
40
0
60
55
# print with sep=","
20,40,0,60,55
阅读map(),int(),min()的doku并查看Built in functions:不要将它们用作变量名,也不要使用list
,dict
,set
,tuple
。
答案 4 :(得分:0)
尝试一下:
l = list()
for _ in range(int(input())):
l.append(int(input()))
xmin = min(l)
print(*[x - xmin for x in l])
输出:
C:\Users\Documents>py test.py
5
30
50
10
70
65
20 40 0 60 55