Вопрос задан 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\), потому что две двойки взаимно сократятся.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос