Вопрос задан 05.09.2026 в 06:32.
Предмет Информатика.
Спрашивает Неженцева Дарья.
Golang Дан массив из n целых чисел. Каждое из чисел повторяется, кроме одного. Найдите и выведите единственное число. Напишите функцию FindValue(nums []int) int, которая принимает данный массив и возвращает единственное число, которое не повторяется. Примечания Например, FindValue([2, 2, 1]) должна возвращать 1. Буду очень благодарен помощи, новичок в Go и не совсем понимаю его специфичный (по сравнению с питоном) синтаксис.
Ответы на вопрос
Отвечает Легостаев Арсений.
Если все числа повторяются ровно по два раза, кроме одного, удобно использовать операцию XOR. В Go она записывается как \(^\).
Идея такая: одинаковые числа при XOR «уничтожают» друг друга, а в итоге остаётся только неповторяющееся число.
Функция:
func FindValue(nums []int) int {
result := 0
for _, num := range nums {
result ^= num
}
return result
}
Что здесь происходит:
- nums []int — это срез целых чисел;
- result := 0 — создаём переменную result;
- for _, num := range nums — проходим по всем числам массива;
- result ^= num — то же самое, что result = result ^ num;
- return result — возвращаем найденное число.
Например, для массива [2, 2, 1] получится \(1\), потому что две двойки взаимно сократятся.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

