• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 5. While cycle

Schwierigkeit:

Aufgabe«Wurzel der Zahl auswählen»

💻 Python

Auf dem fernen Planeten XB-103 sammelt ein Forschungsroboter-Geologe Proben von Mineralien vom Förderband. Jede Mineralart hat ihre eigene eindeutige numerische Kennung (ID). Das Steuerungssystem des Roboters soll so effizient wie möglich arbeiten. Daher muss zur Optimierung des Speichers des Roboters am Ende der Schicht nur eine Zahl an den Zentralcomputer übermittelt werden: die maximale Länge der durchgehenden Reihe von Proben desselben Typs. Die Schicht des Roboters endet, wenn eine spezielle Kalibrierungsprobe mit der ID 0 eintrifft.

rn

Sie erhalten eine Sequenz von numerischen Mineral-IDs. Die Sequenz endet immer mit der Zahl 0, die das Ende der Schicht markiert und nicht die ID eines Minerals ist. Bestimmen Sie die größte Anzahl aufeinanderfolgender gleicher IDs in dieser Sequenz.

Eingabeformat

Ganze natürliche Zahlen werden eingegeben, jede in einer neuen Zeile. Die Sequenz endet mit der Zahl 0.

Ausgabeformat

Eine Zahl & mdash; Die maximale Länge der kontinuierlichen Sequenz gleicher Elemente.

Beispiel

Eingabe

1
7
7
7
2
2
9
0

Ausgabe

3

Hinweis

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Entwicklerlösung
# Инициализируем переменные для подсчета
# max_len - хранит максимальную найденную длину серии
# current_len - хранит длину текущей серии одинаковых чисел
# prev_n - хранит предыдущее число для сравнения с текущим

max_len = 0
current_len = 0
# Используем -1 как начальное значение, так как ID минералов - натуральные числа
prev_n = -1 

# Запускаем бесконечный цикл, который прервется при вводе 0
while True:
    # Считываем очередной ID и преобразуем его в целое число
    n = int(input())

    # Условие выхода из цикла - конец смены
    if n == 0:
        break

    # Сравниваем текущий ID с предыдущим
    if n == prev_n:
        # Если они равны, увеличиваем счетчик текущей серии
        current_len += 1
    else:
        # Если числа не равны, значит серия прервалась.
        # Сначала проверяем, не была ли закончившаяся серия самой длинной
        if current_len > max_len:
            max_len = current_len
        
        # Начинаем новую серию с текущего числа. Ее длина равна 1.
        current_len = 1
        # Обновляем "предыдущее" число
        prev_n = n

# После завершения цикла нужно выполнить еще одну проверку.
# Это необходимо для случая, когда самая длинная серия оказалась в самом конце
# последовательности, прямо перед нулем.
if current_len > max_len:
    max_len = current_len

# Выводим результат
print(max_len)

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!