39 / 205
LeetCode · EasyOson10 ball· ~15 daqiqa

Happy Number

Baxtli son (Happy Number) quyidagi jarayon orqali aniqlanadi:

  1. Sonni uning har bir raqamining kvadratlari yig'indisi bilan almashtiring.
  2. Bu jarayonni natija 1 ga teng bo'lgunga yoki sonsiz siklga kirgunga qadar takrorlang.
  3. Agar jarayon 1 da tugasa — bu baxtli son.
  4. Agar sonsiz siklga kirsa — bu baxtli son emas.

n baxtli son bo'lsa true, aks holda false qaytaring.

example.go
func solve(n int) bool {
    // ...
}

Misollar

kod
Input: n = 19
Output: true
Tushuntirish:
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1 (baxtli!)
kod
Input: n = 2
Output: false
kod
Input: n = 1
Output: true

Maslahatlar

  1. Jarayon cheksiz siklga tushib qolishi mumkinligini hisobga olib, oldin ko'rilgan sonlarni saqlab borishni o'ylang.
  2. Har safar sonni raqamlari kvadratlari yig'indisiga almashtirib boring va har bir yangi sonni set'ga qo'shing; agar son 1 ga aylansa true, agar avval ko'rilgan songa qaytib kelsa (sikl) false qaytaring.