Рекурсия перебор

Задано натуральное число x. Найдите число способов представить его в виде суммы четырех натуральных чисел: x = a + b + c + d, где a ≤ b ≤ c ≤ d.
вот это до этого не ту задачу показали

1 лайк

1 сек дается

какие попытки решения были?

#include <iostream>

using namespace std;

int main()

{

int n;

cin>>n;

int shet=0;

for ( int i=1;i<=n;i++) {

for ( int j=1;j<=i;j++) {

for ( int k=1;k<=j;k++) {

if (n-i-j-k<=k && n-i-j-k>0) {

shet++;

}

}

}

} cout<<shet;

return 0;

}

Подсказка: a < b < c < \frac{n}{2}, потому что если c \ge \frac{n}{2}, то d = n - \frac{n}{2} - a - b =>d < \frac{n}{2} => d < c. Поэтому тебе нужно перебирать a, b, c до \frac{n}{2}

2 лайка