Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zago-vlad
13 / 8 / 1
Регистрация: 12.01.2010
Сообщений: 106
#1

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

03.12.2011, 18:22. Просмотров 986. Ответов 1
Метки нет (Все метки)

Всем привет!

Есть некое число N и массив arr[k] (k - размер массива).
Нужно написать программу, которая выведет на экран все возможные варианты разложения числа N числами из массива arr.

Например, если N=5, а в массиве arr лежат числа 1,2,3, то программа должна вывести следующее:

2+3
1+1+3
2+1+1+1
1+2+2
1+1+1+1+1

Порядок вывода вариантов не важен.
Изменение порядка разложения не считаются разными вариантами. Например, варианты 2+3 и 3+2 считаются одинаковыми и программа должна вывести только один из них.

Заранее ОГРОМНОЕ спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 18:22     Разложение числа
Посмотрите здесь:

разложение числа - C++
Как ,допустим, разложить число 1924 на 1 9 2 4. Даже идей нет

Разложение числа - C++
Число можно разложить по 5 и по 3, то есть если это допустим 8 то выйдет 5 и 3, причем не должно быть остатка, допустим 22 можно разложить...

Разложение числа - C++
вот написал прогу которая которая должна разложить число N на множители по массиву M и К где М {1,5,10,50,100} а К мы должны сами найти....

Разложение числа по цифрам - C++
Здравствуйте, вообщем возникла такая проблема вроде бы и написал уже программу разложения числа по цифрам. но работает она магическим...

Разложение натурального числа - C++
Есть такая задача: Составить программу, которая выдаёт представление натурального числа в виде суммы 5 слагаемых, где каждое слагаемое...

Разложение числа на множители - C++
var s1,s2,n: longint; f: integer; begin write('vvedite natural chislo '); readln(n); f:=0; s1:=1; ...

Разложение числа по степеням 3 - C++
Выяснить, может ли натуральное число n быть представлено в виде разложения по степеням числа 3 Можно даже без кода,а только алгоритм

Разложение на цифры числа - C++
Надо разложить на цифры число. Главная проблема в том, что число может быть вплоть до 10^100. Попытался написать код, но не могу понять...

Разложение натурального числа - C++
Помогите,пожалуйста, написать программу задание:написать программу,реализующую жадный алгоритм(минимизация числа слагаемых) для...

Разложение числа на цифры - C++
Проверить истинность высказывания: "Цифры данного трехзначного числа образуют возрастающую или убывающую последовательность". Интересует...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
03.12.2011, 19:55     Разложение числа #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
#include <iostream>
#define MIN(x, y)  ((x) < (y) ? (x) : (y))
long a[1000];
 
void Partition(long n, long high, long pos)
{
   long i;
   if (n > 0)
   {
       for (i = 1; i <= high; i++)
       {
          a[pos] = i;
          Partition(n - i, MIN(i, n - i), pos + 1);
       }
   }
   else
   {
       for (i = 0; i < pos - 1;  i++)
          std::cout << a[i] << "+";
       std::cout << a[i] << "\n";
   }
}
 
int main()
{
    long n;
    std::cin >> n;
    Partition(n, n - 1, 0);
    return 0;
}
Yandex
Объявления
03.12.2011, 19:55     Разложение числа
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru