Как записать цикл коротко, с помощью рекурсии - C (СИ)

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

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

Всем привет. Если честно, хотел сам решить данную задачу, но вот уже второй день ничего не выходит, а дедлайн поджимает. Поэтому прошу помощи экспертов. Внимание, вопрос Как записать данный цикл коротко, с помощью рекурсии:
for(i=0; i<n; i++){
if(n<1){break;}
for(p[0]=i+1; p[0]<n; p[0]++){
if(n<2){break;}
for(p[1]=p[0]+1; p[1]<n; p[1]++){
if(n<3){break;}
for(p[2]=p[1]+1; p[2]<n; p[2]++){
if(n<4){break;}
for(p[3]=p[2]+1; p[3]<n; p[3]++){
if(n<5){break;}
for(p[4]=p[3]+1; p[4]<n; p[4]++){
 
// и так далее...
 
printf("%d, %d, %d, %d, %d, %d\n", kostky[i], kostky[p[0]], kostky[p[1]], kostky[p[2]], kostky[p[3]], kostky[p[4]]);
cel++;
}
printf("%d, %d, %d, %d, %d\n", kostky[i], kostky[p[0]], kostky[p[1]], kostky[p[2]], kostky[p[3]]);
cel++;
}
printf("%d, %d, %d, %d\n", kostky[i], kostky[p[0]], kostky[p[1]], kostky[p[2]]);
cel++;
}
printf("%d, %d, %d\n", kostky[i], kostky[p[0]], kostky[p[1]]);
cel++;
}
printf("%d, %d\n", kostky[i], kostky[p[0]]);
cel++;
}
printf("%d\n", kostky[i]);
cel++;
}
Не покидает ощущение, что делается это как-то просто, но у меня не выходит. Я уже пытался и рекурсивную функцию сделать, все равно.. Спасибо за внимание.

Решение задачи: «Как записать цикл коротко, с помощью рекурсии»

textual
Листинг программы
5, 4, 3, 2, 1
5, 4, 3, 2
5, 4, 3, 1
5, 4, 3
5, 4, 2, 1
5, 4, 2
5, 4, 1
5, 4
5, 3, 2, 1
5, 3, 2
5, 3, 1
5, 3
5, 2, 1
5, 2
5, 1
5
4, 3, 2, 1
4, 3, 2
4, 3, 1
4, 3
4, 2, 1
4, 2
4, 1
4
3, 2, 1
3, 2
3, 1
3
2, 1
2
1
Всего: 31

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


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

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

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