Как записать цикл коротко, с помощью рекурсии - 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