Напишите программу на языке программирования Go для определения количества элементов в последовательности, равных ее наибольшему элементу. Входные данные представляют собой непустую последовательность натуральных чисел, оканчивающуюся числом 0 (само число 0 в последовательность не входит, а служит признаком ее окончания). Выведите ответ. Пример входных данных: 1 3 3 1 0. Ответ: 2 (так как в последовательности есть два наибольших элемента - две тройки).
Игоревна_8883
Хорошо, вот программный код на языке Go, который решает данную задачу:
Давайте разберем этот код пошагово:
1. Сначала мы объявляем переменные: `sequence` для хранения последовательности чисел, `input` для ввода чисел пользователем, `maxElement` для хранения наибольшего элемента и `maxCount` для хранения количества наибольших элементов в последовательности.
2. Затем мы просим пользователя ввести последовательность чисел, используя цикл `for`. Цикл продолжается до тех пор, пока пользователь не введет число 0. Введенные числа добавляются в массив `sequence` с помощью функции `append`.
3. После того, как пользователь ввел всю последовательность, мы переходим к поиску наибольшего элемента и подсчету его количества. Мы используем цикл `for range` для перебора всех элементов `sequence`.
4. Внутри цикла мы сравниваем каждый элемент `elem` с текущим максимальным элементом `maxElement`. Если `elem` больше, мы обновляем `maxElement` и устанавливаем `maxCount` в 1. Если `elem` равен текущему `maxElement`, мы увеличиваем `maxCount` на 1.
5. По завершении цикла мы уже знаем наибольший элемент и количество его повторений. Выводим результат с помощью функции `fmt.Println`.
Таким образом, данная программа находит количество элементов в последовательности, равных ее наибольшему элементу. При вводе примера данных "1 3 3 1 0" программа выведет число 2, так как в последовательности два наибольших элемента - две тройки.
go
package main
import (
"fmt"
)
func main() {
var sequence []int
var input int
maxElement := 0
maxCount := 0
// Ввод последовательности чисел
for {
fmt.Scan(&input)
if input == 0 {
break
}
sequence = append(sequence, input)
}
// Поиск наибольшего элемента и подсчет его количества
for _, elem := range sequence {
if elem > maxElement {
maxElement = elem
maxCount = 1
} else if elem == maxElement {
maxCount++
}
}
// Вывод результата
fmt.Println(maxCount)
}
Давайте разберем этот код пошагово:
1. Сначала мы объявляем переменные: `sequence` для хранения последовательности чисел, `input` для ввода чисел пользователем, `maxElement` для хранения наибольшего элемента и `maxCount` для хранения количества наибольших элементов в последовательности.
2. Затем мы просим пользователя ввести последовательность чисел, используя цикл `for`. Цикл продолжается до тех пор, пока пользователь не введет число 0. Введенные числа добавляются в массив `sequence` с помощью функции `append`.
3. После того, как пользователь ввел всю последовательность, мы переходим к поиску наибольшего элемента и подсчету его количества. Мы используем цикл `for range` для перебора всех элементов `sequence`.
4. Внутри цикла мы сравниваем каждый элемент `elem` с текущим максимальным элементом `maxElement`. Если `elem` больше, мы обновляем `maxElement` и устанавливаем `maxCount` в 1. Если `elem` равен текущему `maxElement`, мы увеличиваем `maxCount` на 1.
5. По завершении цикла мы уже знаем наибольший элемент и количество его повторений. Выводим результат с помощью функции `fmt.Println`.
Таким образом, данная программа находит количество элементов в последовательности, равных ее наибольшему элементу. При вводе примера данных "1 3 3 1 0" программа выведет число 2, так как в последовательности два наибольших элемента - две тройки.
Знаешь ответ?