Blogga qaytish

Math solution in Go

Masala ishlaymiz

Masala sharti:

Given an integer num, repeatedly add all its digits until the result has only one digit, and return it.
 
Example 1:
Input: num = 38
Output: 2
Explanation: The process is
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2 
Since 2 has only one digit, return it.
Example 2:
Input: num = 0
Output: 0
 
Constraints:
0 <= num <= 231 - 1
 
Follow up: Could you do it without any loop/recursion in O(1) runtime?

Buyerda rasmda ko'rinib turganiday, daaslab 9 dan katta bolsa for loopga kiritamiz nima uchun chunki shartda aytilganiday single son bolsa, yani bir xonali son bolsa uning ozini qaytaramiz

bizda eng kichik bir xonali son 10 shuning uchun 10 ham kirishi uchun 9dan kattasi deymiz shunda 10 dan boshlab tekshiradi

va ikkinchi for sikliga navbat keladi unga 0 dan katta bolsa tushadi tepada totalni 0 qilib olganmiz

va for dan chiqqani totalga qoshib tenglaymiz

masalan 38 berilsa 9 dan ktta tushadi va 3 + 8 boladi 11 va u yana qaytdan bitta tushadi 9 dan katta va 1 + 1 boladi 2 natijada

2 esa 9 dan kichik return boladi va 2 qaytariladi

👍 0 ❤️ 0 🔥 0

Izohlar 0

Izoh qoldirish uchun kiring yoki ro'yxatdan o'ting.

Hali izoh yo'q. Birinchi bo'ling!

Boshqa maqolalar

Shunga o'xshash

Barchasi →