1 / 1 / 0
Регистрация: 30.01.2015
Сообщений: 81
1

Вывести на экран все возможные различные способы представления числа в виде суммы натуральных чисел

03.05.2015, 06:19. Показов 22397. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано натуральное число N. Требуется получить и вывести на экран все возможные
различные способы представления этого числа в виде суммы натуральных чисел (то есть, 1 + 2
и 2 + 1 – это один и тот же способ разложения числа 3). Решите задачу с помощью
рекурсивной процедуры.
Пример:
Введите натуральное число:
4
1 + 1 + 1 + 1
1 + 1 + 2
1 + 3
2 + 2
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2015, 06:19
Ответы с готовыми решениями:

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

Вывести все возможные представления натурального числа N в виде суммы других натуральных чисел
Написать программу, выводящую все возможные представления натурального числа N в виде суммы...

Вывести на экран все представления натурального числа n в виде суммы k натуральных слагаемых
#include <stdio.h> #include <conio.h> #define Min( a, b ) ( ((a) < (b)) ? (a) : (b) ) #define...

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

2
Заблокирован
03.05.2015, 08:56 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
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
uses crt;
type arr=array[1..40]of integer;
 
procedure Recursion(i,pos,sum,n:integer;a:arr);
var j,k:integer;
begin
    for j:=i to n-1 do
    begin
        a[pos]:=j;
        if sum+j=n then
        begin
            for k:=1 to pos do 
                if k>1 then write('+',a[k])
                else write(a[k]);
            writeln
        end
        else    
        if sum+j<n then Recursion(j,pos+1,sum+j,n,a);
    end;
end;
 
var n:integer;
    a:arr;
begin
    write('n:');
    readln(n);
    Recursion(1,1,0,n,a);
    readkey;        
end.
0
0 / 0 / 0
Регистрация: 13.01.2016
Сообщений: 1
13.01.2016, 13:12 3
А как решить данную задачу, если считать 1+2 и 2+1 разными способами. Т.е. для N=4 будет:
1+1+1+1
1+1+2
1+2+1
2+1+1
2+2
1+3
3+1
Помогите, пожалуйста!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2016, 13:12
Помогаю со студенческими работами здесь

Вывести все представления натурального числа N суммой натуральных чисел
Вот ударила мне мысль, порешать задачки по информатике. Наткнулся на задачу 2006 года. Вот она...

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

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

Даны натуральные числа N и M. Нужно представить число N в виде суммы M. Вывести все представления
Даны натуральные числа N и M. Нужно представить число N в виде суммы M. Вывести все представления....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru