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

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

22.12.2021, 21:10. Показов 590. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru