Представить число в виде суммы натуральных чисел - Pascal

Узнай цену своей работы

Формулировка задачи:

дано натуральное n число, найти все способы в виде натуралных чисел, без процедуры помог. Например: 3=3, 3=2+1, 3=1+1+1

Решение задачи: «Представить число в виде суммы натуральных чисел»

textual
Листинг программы
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.

Объяснение кода листинга программы

  1. Объявлены переменные: n (целое число), a (массив на 40 элементов).
  2. Задается значение переменной n с помощью функции readln.
  3. Вызывается функция Recursion с аргументами: i=1, pos=1, sum=0, n=неизвестно, a=массив.
  4. Внутри функции Recursion объявлены вспомогательные переменные j, k.
  5. Цикл for перебирает значения j от i до n-1.
  6. Внутри цикла устанавливается значение a[pos]=j.
  7. Проверяется условие sum+j=n.
  8. Если условие выполняется, то выводится на экран строка, представляющая сумму натуральных чисел.
  9. Если условие не выполняется, то рекурсивно вызывается функция Recursion с новыми аргументами.
  10. Если значение j>1, то перед вызовом функции Recursion выводится на экран символ +.
  11. Если значение j=1, то выводится на экран символ +.
  12. Если значение j=0, то выводится на экран символ +.
  13. Если значение j<n, то рекурсивно вызывается функция Recursion с новыми аргументами.
  14. Если значение j>n, то цикл завершается.
  15. Если значение j=n, то выводится на экран символ =.
  16. Если значение j<n, то выводится на экран символ +.
  17. Если значение j=n, то выводится на экран символ =.
  18. Если значение j<n, то выводится на экран символ +.
  19. Если значение j=n, то выводится на экран символ =.
  20. Если значение j<n, то выводится на экран символ +.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы