Найти в Дзене
Skill Up In IT

202. Happy Number

#Hash Table#Math#Two Pointers Напишите алгоритм для определения того, является ли число n счастливым. Счастливое число — это число, определяемое следующим процессом: Начиная с любого положительного целого числа, замените число суммой квадратов его цифр. Повторяйте процесс, пока число не станет равным 1 (где оно и останется), или пока оно не зациклится бесконечно в цикле, который не включает 1. Те числа, для которых этот процесс заканчивается на 1, являются счастливыми. Верните true, если n является счастливым числом, и false, если нет. Example 1: Input: n = 19
Output: true
Explanation:
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1 Example 2: Input: n = 2
Output: false Ограничения: Решение на go func isHappy(n int) bool { num := make(map[int]bool) for !num[n]{ num[n] = true n=calc(n) if n == 1 { return true } } return false } func calc(n int)int{ output := 0 for n > 0 { digit := n % 10 digit = digit * digit output += digit n = n / 10 } return output }

#Hash Table#Math#Two Pointers

Напишите алгоритм для определения того, является ли число n счастливым.

Счастливое число — это число, определяемое следующим процессом:

Начиная с любого положительного целого числа, замените число суммой квадратов его цифр.

Повторяйте процесс, пока число не станет равным 1 (где оно и останется), или пока оно не зациклится бесконечно в цикле, который не включает 1.

Те числа, для которых этот процесс заканчивается на 1, являются счастливыми.

Верните true, если n является счастливым числом, и false, если нет.

Example 1:

Input: n = 19
Output: true
Explanation:
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1

Example 2:

Input: n = 2
Output: false

Ограничения:

  • 1 <= n <= 2^31 - 1

Решение на go

func isHappy(n int) bool {
num := make(map[int]bool)
for !num[n]{
num[n] = true
n=calc(n)
if n == 1 {
return true
}
}
return false
}
func calc(n int)int{
output := 0
for n > 0 {
digit := n % 10
digit = digit * digit
output += digit
n = n / 10
}
return output
}