Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 22.12.2021
Сообщений: 3

Найти все представления натурального числа в виде суммы натуральных слагаемых (учитывая порядок слагаемых)!

22.12.2021, 21:10. Показов 565. Ответов 0
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Найти все представления натурального числа в виде суммы натуральных слагаемых, порядок которых является существенным (суммы 2+1 и 1+2 считаются разными). У меня есть код для нахождения представлений натурального числа в которых порядок расположения слагаемых не учитывается (суммы 2+1 и 1+2 считаются одинаковыми). Как сделать чтобы вывести не только все представления, но и все варианты расположений слагаемых в этих представлениях.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
using namespace std;
bool PrintFragments(unsigned num, unsigned max, unsigned& nTry, unsigned lvl = 0)
{
    unsigned n = num;
 
    while (n)
    {
        if (n <= max)
        {
            bool found = false;
 
            if (n == num && !--nTry)
                found = true;
            else if (PrintFragments(num - n, n, nTry, lvl + 1))
                found = true;
 
            if (found)
            {
                cout << n << " ";
 
                if (!lvl)
                    cout << "\n";
 
                return true;
            }
        }
        --n;
    }
 
    return false;
}
 
void PrintNumFragmentsInfo(unsigned num)
{
    unsigned counter = 0;
 
    while (1)
    {
        unsigned nTry = counter + 1;
        if (PrintFragments(num, num - 1, nTry))
            ++counter;
        else
            break;
    }
 
    cout << "total amounts of fragments is : " << counter << "\n";
}
 
int main()
{
    PrintNumFragmentsInfo(4);
}
Добавлено через 20 минут
Все, решил проблему с помощью функции next_permutation. Правда пришлось переделать программу под массив, ну так даже лучше выглядит) У кого такая же проблема, кидаю код.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <algorithm>
using namespace std;
 
int a[100];
 
void dec(int n, int k, int i);
int main() {
    int m, i, j;
    cout << "Input:";
    cin >> m;
    for (i = 0; i <= m; i++) {
        a[i] = 0;
    }
    cout << "Result:" << endl;
    dec(m, m, 0);
    return 0;
}
void dec(int n, int k, int i)
{
    if (n < 0) return;
    if (n == 0) {
 
        int j;
        for (j = 0; j < i; j++) {
            next_permutation(a, a + i);
            for (int h = 0; h < i; h++)
            {
                cout << a[h] << " ";
            }
            cout << endl;
        }
    }
    else
    {
        if (n - k >= 0)
        {
            a[i] = k;
            dec(n - k, k, i + 1);
        }
 
        if (k - 1 > 0) {
            dec(n, k - 1, i);
        }
    }
    return;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2021, 21:10
Ответы с готовыми решениями:

Вывести на экран все представления натурального числа n в виде суммы k натуральных слагаемых
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define Min( a, b ) ( ((a) &lt; (b)) ? (a) : (b) ) #define MaxInt 32767; int N,a; void...

Вывести на экран все представления натурального числа n в виде суммы k натуральных слагаемых(без рекурсии)
Вывести на экран все представления натурального числа n в виде суммы k натуральных слагаемых(Не рекурсивным способом). Помогите пожалуйста.

Найти количество способов представления числа в виде суммы нескольких натуральных слагаемых.
Чтобы закрепить тему &lt;&lt;свойства сложения&gt;&gt;, учитель предложил первоклассникам представить число 5 в виде суммы нескольких натуральных...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.12.2021, 21:10
Помогаю со студенческими работами здесь

Вывести все представления натурального числа N суммой натуральных чисел. Перестановка слагаемых нового способа
Вывести все представления натурального числа N суммой натуральных чисел. Перестановка слагаемых нового способа представления не даёт. ...

Найти все представления натурального числа в виде суммы натуральных чисел
Скласти програму, яка друкує всі різні представлення числа N у вигляді сум K натуральних чисел N, K-вводяться, ( Нужно решить эту задачу на...

Представить число N в виде суммы M натуральных слагаемых так, чтобы сумма синусов слагаемых была максимальной
Даны натуральные числа N и M. Нужно представить число N в виде суммы M натуральных слагаемых так, чтобы сумма синусов этих слагаемых была...

Перечислить все представления положительного целого числа n в виде суммы последовательности невозрастающих целых положительных слагаемых.
Перечислить все представления положительного целого числа n в виде суммы последовательности невозрастающих целых по- ложительных...

Сгенерировать все представления натурального числа N в виде суммы натуральных чисел
Составьте программу генерирующую все представления натурального числа N в виде суммы натуральных чисел ( перестановки слагаемых нового...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru