在家作業:
撰寫一個程式,讓用戶輸入數字 n 然后程式讓用戶輸入 n 個數字。該程式需要在串列中找到一個占優數字。占優數字是在串列中至少重復 n/2 次的數字。串列。
我的想法是創建一個開始時為 0 的計數器。如果計數器是 = 或 > n//2,我們將該數字添加到串列中。但是這個想法并不像我想的那樣作業。
代碼:
numbers = []
n = int(input("Type number: "))
for i in range(n):
numbers.append(int(input("Type number: ")))
print(numbers)
counter = 0
dominant = []
for e in numbers:
for i in range(n):
if i == e:
counter = 1
if counter >= n // 2:
dominant.append(i)
print(dominant)
PS 如果沒有顯性數字,則無需說明,因此我們將跳過該部分。
uj5u.com熱心網友回復:
您可以遍歷集合numbers并計算每個數字出現的次數,然后再次遍歷該計數器以找到占主導地位的數字:
dominant_numbers = [k for k, v in [[num, numbers.count(num)] for num in set(numbers)] if v >= (n 1)//2]
uj5u.com熱心網友回復:
解決方案:
brojevi = []
n = int(input("Koliko brojeva zelite da unesete? "))
for i in range(n):
brojevi.append(int(input(f"Unesite {i 1}. broj: ")))
print(brojevi)
for e in brojevi:
brojac = 0
for j in brojevi:
if e == j:
brojac = 1
if brojac >= n//2:
print(e)
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/388324.html
