Рубрики

Минимизируйте сумму цифр A и B так, чтобы A + B = N

Для заданного целого числа N задача состоит в том, чтобы найти два натуральных числа A и B так , чтобы A + B = N, а сумма цифр A и B была минимальной. Выведите сумму цифр A и B.

Примеры:

Input: N = 16
Output: 7
(10 + 6) = 16 and (1 + 0 + 6) = 7
is minimum possible.

Input: N = 1000
Output: 10
(900 + 100) = 1000

Подход: если N — степень 10, тогда ответ будет 10, иначе ответ будет суммой цифр N. Понятно, что ответ не может быть меньше суммы цифр N, потому что сумма цифр уменьшается при генерировании переноса. Более того, когда N является степенью 10 , очевидно, что ответ не может быть 1 , поэтому ответ будет 10 . Поскольку A или B не могут быть 0, так как они оба должны быть положительными числами.

Ниже приведена реализация вышеуказанного подхода:

C ++

// C ++ реализация подхода
#include <bits/stdc++.h>

using namespace std;

  
// Функция для возврата минимума
// возможная сумма цифр A
// и B такие, что A + B = n

int minSum(int n)

{

    // Находим сумму цифр n

    int sum = 0;

    while (n > 0) {

        sum += (n % 10);

        n /= 10;

    }

  

    // Если число равно степени 10

    if (sum == 1)

        return 10;

  

    return sum;

}

  
// Код драйвера

int main()

{

    int n = 1884;

  

    cout << minSum(n);

  

    return 0;

}

Джава

// Java реализация подхода

  

class GFG

{

  
// Функция для возврата минимума
// возможная сумма цифр A
// и B такие, что A + B = n

static int minSum(int n)

{

    // Находим сумму цифр n

    int sum = 0;

    while (n > 0)

    {

        sum += (n % 10);

        n /= 10;

    }

  

    // Если число равно степени 10

    if (sum == 1)

        return 10;

  

    return sum;

}

  
// Код драйвера

public static void main(String[] args)

{

    int n = 1884;

  

    System.out.print(minSum(n));

  
}
}

  
// Этот код предоставлен 29AjayKumar

python3

# Python реализация подхода

  
# Функция для возврата минимума
# возможная сумма цифр A
# и B такие, что A + B = n

def minSum(n) : 

  

    # Найти сумму цифр n

    sum = 0

    while (n > 0) :

        sum += (n % 10); 

        n //= 10

  

    # Если число равно степени 10

    if (sum == 1) :

        return 10

  

    return sum

  
# Код драйвера

if __name__ == "__main__"

    n = 1884

  

    print(minSum(n)); 

  
# Этот код предоставлен AnkitRai01

C #

// C # реализация подхода

using System;

  

class GFG

{

  
// Функция для возврата минимума
// возможная сумма цифр A
// и B такие, что A + B = n

static int minSum(int n)

{

    // Находим сумму цифр n

    int sum = 0;

    while (n > 0)

    {

        sum += (n % 10);

        n /= 10;

    }

  

    // Если число равно степени 10

    if (sum == 1)

        return 10;

  

    return sum;

}

  
// Код драйвера

public static void Main(String[] args)

{

    int n = 1884;

  

    Console.Write(minSum(n));

}
}

  
// Этот код предоставлен PrinciRaj1992

Выход:

21

Рекомендуемые посты:

Минимизируйте сумму цифр A и B так, чтобы A + B = N

0.00 (0%) 0 votes