68 / 205
LeetCode · EasyOson10 ball· ~10 daqiqa

Number of Steps to Reduce a Number to Zero

Sizga manfiy bo'lmagan butun num soni berilgan. Uni nolga (0 ga) kamaytirish uchun qilingan qadamlar sonini qaytaring.

Har bir qadamda, agar joriy son juft bo'lsa, uni 2 ga bo'lishingiz kerak, aks holda undan 1 ni ayirishingiz kerak.

example.go
func solve(num int) int {
    // ...
}

Misollar

kod
Input: num = 14
Output: 6
Tushuntirish:
1-qadam: 14 juft; 2 ga bo'lamiz va 7 hosil bo'ladi.
2-qadam: 7 toq; 1 ayiramiz va 6 hosil bo'ladi.
3-qadam: 6 juft; 2 ga bo'lamiz va 3 hosil bo'ladi.
4-qadam: 3 toq; 1 ayiramiz va 2 hosil bo'ladi.
5-qadam: 2 juft; 2 ga bo'lamiz va 1 hosil bo'ladi.
6-qadam: 1 toq; 1 ayiramiz va 0 hosil bo'ladi.
Jami 6 qadam.
kod
Input: num = 8
Output: 4
kod
Input: num = 123
Output: 12

Maslahatlar

  1. Bu masalani to'g'ridan-to'g'ri, masalada aytilgan qoidani takrorlab simulyatsiya qilish orqali yechish mumkin.
  2. Son 0 bo'lmaguncha tsikl yurgizing: son juft bo'lsa 2 ga bo'ling, toq bo'lsa 1 ni ayiring, va har bir amaldan keyin qadamlar hisoblagichini oshirib boring.