Найдите количество троек натуральных чисел a, b, c, что a + b + c = n - PascalABC.NET

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

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

Не могу сосредоточиться, помогите пожалуйста. Дано число n. Найдите количество троек натуральных чисел a, b, c таких, что a + b + c = n, a <= b <= c. На вход программе подается натуральное n <= 30 000. Выведите искомое число.

Решение задачи: «Найдите количество троек натуральных чисел a, b, c, что a + b + c = n»

textual
Листинг программы
  1. function P(n, k : integer) : integer;
  2. begin
  3.   if k = 1 then result := 1
  4.   else if n = k then result := 1
  5.   else if n < k then result := 0
  6.   else result := p(n - 1, k - 1) + p(n - k, k)
  7. end;
  8. begin
  9.   var n := ReadlnInteger();
  10.   writeln(p(n, 3)); // количество разбиений n на 3 слагаемых
  11. end.

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

В этом коде функция P вычисляет количество разбиений числа n на k слагаемых. Если k=1, то число n может быть разбито только одним способом, поэтому P(n,1)=1. Если n=k, то также может быть только один способ разбить его на равные части, поэтому P(n,k)=1. Если n<k, то число n не может быть разбито на k слагаемых, поэтому P(n,k)=0. В остальных случаях используется рекурсия для вычисления количества разбиений для n-1 и k-1, а затем результат увеличивается на количество разбиений для n-k. В основной части кода считывается число n и выводится количество разбиений на 3 слагаемых.

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


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

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

7   голосов , оценка 4.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы