Форум программистов, компьютерный форум, киберфорум
Наши страницы

Разложение числа на слагаемые - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Расчет краски на лабиринт http://www.cyberforum.ru/cpp-beginners/thread342764.html
Условие задачи тут #include <iostream> using namespace std; void paint(int i, int j) { if (a=='.') { a='$'; paint(i+1,j); paint(i-1,j); paint(i,j+1);
C++ Создание нескольких стеков //--------------------------------------------------------------------------- #pragma hdrstop #include <tchar.h> #include <stdlib.h> #include <iostream.h> #include <dos.h>... http://www.cyberforum.ru/cpp-beginners/thread342698.html
C++ Сохранение матриц больших размеров в типизированный файл
Проблема: есть большой двумерный массив (double). Пытаюсь сохранить его в типизированный файл (а затем считать в другой массив). В файл сохраняется только некоторая часть (до 58 элемента, в частном...
два ++ C++
Что означает "++" что ето за операция в С++Builder очень надо узнать Напишите кто нибудь.
C++ Тетрис и многопоточность http://www.cyberforum.ru/cpp-beginners/thread342646.html
Здравствуйте. Взялся я за тетрис, немного написал, а потом понял, что мне нужны два потока. Вот зачем: у меня игровое поле — двумерный массив . Фигура представленна массивом . В то время, как один...
C++ Подскажите, как должно выглядеть это задание? Разработайте приложение rle.exe, выполняющее RLE-компрессию бинарных файлов с сильно разреженным содержимым, а также декомпрессию упакованных ею файлов. Необходимо реализовать следующий принцип... подробнее

Показать сообщение отдельно
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.08.2011, 12:54
Мое решение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
int n, sum[40];
void print_terms(int left, int min = 0, int i = 0){
    if (left < 0 || min == n)
        return;
    sum[i] = min;
    if (min != 0)
    {
        print_terms(left - min, min, i + 1);
    }
    print_terms(left - 1, min + 1, i);
    if (left == 0)
    {
        for (int j = 0; j <= i; ++j)
            std::cout << sum[j] << (j != i ? '+' : '\n');
    }
        
}
int main(){
    std::cin >> n; 
    print_terms(n);
}
Непонятно только это
Цитата Сообщение от Dani Посмотреть сообщение
числа должны идти в порядке возрастания
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.