Разбейте число Integer(int) на любое разрядное число так, чтобы сумма цифр была равна...

RedDeveloper
12.02.2023 10:34
Разбейте число Integer(int) на любое разрядное число так, чтобы сумма цифр была равна...

Разбить число Integer(int) на любое разрядное число так, чтобы сумма цифр была равна числу на Java

Q. Дано очень большое число N, разбейте его на r целых чисел так, чтобы их сумма равнялась исходному числу, и найдите количество способов сделать это.

В вопросе говорится, что вам дано число N, и вы должны разбить это число на k-значное число, при вычислении которого сумма этих k-значных чисел будет равна N.

Приведенный выше вопрос можно решить различными способами.

  1. С помощью циклов.
//Given a N = 8, break it into 3 whole numbers such that 
//they sum up to the original number and find the number of ways to do so

import java.io.*;

class GFG {
    public static void main (String[] args) {
       int n = 8;
        int num = 0;
        for (int i = 0; i <= n; i++){
            for (int j = 0; j <= n; j++){
                for (int k = 0; k <= n; k++){
                    if (i + j + k == n){
                        num++;
                    }
                }
            }
        }
       System.out.println("Total : " + num);
    }
}

//output ----- Total : 45

//Time Complexity - O(n^3)
//Space Complexity - O(1)

2. С помощью математики.

Чтобы решить ее с помощью математического подхода, нам сначала нужно знать о методе Беггера/ теореме о многочленах в перестановках и комбинациях. Метод нищего гласит

"Если у вас с собой N монет и есть k нищих, то сколькими способами вы распределите монеты?".

Решением вышеприведенного утверждения является -

Итак, давайте решать с помощью уравнения. Предположим, у вас есть 3 нищих и у вас есть 8 монет, тогда мы можем распределить монеты между этими 3 в - или, Предположим, вам дали число 8, тогда как разбить его на трехзначное число так, чтобы сумма цифр была равна числу -.

//Given a number N = 8, break it into 3 whole numbers such that 
//they sum up to the original number and find the number of ways to do so

import java.io.*;

class GFG {
    public static void main (String[] args) {
      int n = 8;
      int k = 3;
      // (n+k-1)! / (k-1)!*(n)! = 10! / 2!*8!
      int num = (n+k-1)*(n+k-2) / 2;
      System.out.println("Total number of "+k+" digit number having sum equal to "+n+" = "+num);
    }
}


//Output ---- Total number of 3 digit number having sum equal to 8 = 45

//Time Complexity - O(1)
//Space Complexity - O(1)
Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы

19.03.2023 13:43

Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем запускать наши php-файлы через localhost на наших компьютерах. Мне с трудом удалось установить его и я решил поделиться этой статьей, чтобы помочь тем,...

Оптимизация React Context шаг за шагом в 4 примерах
Оптимизация React Context шаг за шагом в 4 примерах

19.03.2023 13:03

При использовании компонентов React в сочетании с Context вы можете оптимизировать рендеринг, обернув ваш компонент React в React.memo сразу после поставщика контекста. Это позволит избежать ненужных повторных рендеров.

Библиотека для работы с мороженым
Библиотека для работы с мороженым

19.03.2023 11:50

Лично я попрощался с операторами print() в python. Без шуток.

Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp

19.03.2023 06:15

Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они постоянно обновляют версию (а нам нужно быстро наверстать упущенное!).

Уроки CSS 6
Уроки CSS 6

18.03.2023 11:32

Здравствуйте дорогие читатели, я Ферди Сефа Дюзгюн, сегодня мы продолжим с вами уроки css. Сегодня мы снова продолжим с так называемых классов.

Что такое Css? Для чего он используется?
Что такое Css? Для чего он используется?

18.03.2023 11:16

CSS, или "Каскадные таблицы стилей", - это язык стилей, используемый в веб-страницах. CSS является одним из основных инструментов веб-разработки наряду с HTML и JavaScript.