258. Add Digits

LeetCode easy original: C# #csharp #easy #leetcode
選択した UI 言語に合わせて問題文をロシア語から翻訳します。コードは変更しません。

given 整数 num. Повторно складывайте все его цифры, пока результат не станет однозначным, и return его.

例:

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.

C# 解法

照合済み/オリジナル
public class Solution {
    public int AddDigits(int num) {
        int digital_root = 0;
        while (num > 0) {
            digital_root += num % 10;
            num /= 10;
            if (num == 0 && digital_root > 9) {
                num = digital_root;
                digital_root = 0;
            }
        }
        return digital_root;
    }
}

C++ 解法

自動ドラフト、提出前に確認
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public int AddDigits(int num) {
        int digital_root = 0;
        while (num > 0) {
            digital_root += num % 10;
            num /= 10;
            if (num == 0 && digital_root > 9) {
                num = digital_root;
                digital_root = 0;
            }
        }
        return digital_root;
    }
}

Java 解法

照合済み/オリジナル
class Solution {
    public int addDigits(int num) {
        int digital_root = 0;
        while (num > 0) {
            digital_root += num % 10;
            num /= 10;
            if (num == 0 && digital_root > 9) {
                num = digital_root;
                digital_root = 0;
            }
        }
        return digital_root;
    }
}

JavaScript 解法

照合済み/オリジナル
class Solution {
    addDigits(num) {
        let digital_root = 0
        while (num > 0) {
            digital_root += num % 10
            num = Math.floor(num / 10

Python 解法

照合済み/オリジナル
class Solution:
    def addDigits(self, num: int) -> int:
        digital_root = 0
        while num > 0:
            digital_root += num % 10
            num //= 10
            if num == 0 and digital_root > 9:
                num = digital_root
                digital_root = 0
        return digital_root

Go 解法

照合済み/オリジナル
func addDigits(num int) int {
    digital_root := 0
    for num > 0 {
        digital_root += num % 10
        num /= 10
        if num == 0 && digital_root > 9 {
            num = digital_root
            digital_root = 0
        }
    }
    return digital_root
}

Algorithm

1️⃣

Инициализируйте переменную digital_root значением 0.

2️⃣

В цикле, пока num больше 0:

Добавьте к digital_root последнюю цифру num.

Уменьшите num, удалив последнюю цифру.

Если num равно 0 и digital_root больше 9, присвойте num значение digital_root и сбросьте digital_root в 0.

3️⃣

return значение digital_root.

😎

Vacancies for this task

有効な求人 with overlapping task tags are 表示.

すべての求人
有効な求人はまだありません。