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

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

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

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

03.12.2011, 18:22. Просмотров 1024. Ответов 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 считаются одинаковыми и программа должна вывести только один из них.

Заранее ОГРОМНОЕ спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 18:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разложение числа (C++):

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

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

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

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

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

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

1
Olga_
842 / 184 / 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;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2011, 19:55
Привет! Вот еще темы с ответами:

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

Разложение числа на слагаемые - C++
Разложение числа на слагаемые - используется во многих задачах (как мне кажется - это тривиальная задача). И мне стало интересно: какой...

Разложение Натурального числа - C++
Привет.Помогите пожалуйста решить задачу. Разложить натуральное число на простые множители (вывести, например, 36=1*2*2*3*3 или 7 = 1*7)....

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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