Wypisanie liczb od n do 1 bez użycia pętli

0

Witam mam taki problem, otóż muszę napisać, w języku C, funkcję która wypisze na ekranie liczby od n do 1 (n > 1). Nie można użyć pętli. Kompletnie nie mam pojęcia jak to zrobić. Mógłbym ktoś podsunąć jakiś pomysł?

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int liczba;
    
    printf("Podaj liczbe calkowita: ");
    scanf("%d", &liczba);
 
    system("pause");
    return 0;
}
2

Użyj rekurencji.

1

Rekurencja ?

0

Dzięki, wszystko już jasne

4

Rekurencja/goto. Jak się uprzesz i/lub trochę oszukasz to i switch da radę.

1
void printN(unsigned int n)
{
  if(n > 0)
  {
    printN(n-1);
    printf("%d ",  n);
  }
  return;
}

To działa w ten sposób, że na stos odkładane są kolejne liczby np. dla printN(5) na stos odłożone zostaną liczby: 5,4,3,2,1. Podczas wywoływania funkcji gdy n=0 rekursja zaczyna wracać do punktu wyjścia - ze szczytu stosu zdejmowane są kolejno liczby 1,2,3,4,5 i wykonywana jest instrukcja printf(...). Funkcja wraca do instrukcji printf("..."); na podstawie miejsca powrotu zapisanego w ramce stosu.

Ciekawostka:
Rekursja ze spamiętywaniem słownikowym to "programowanie dynamiczne":
https://www.python-course.eu/python3_memoization.php

0

void printN(unsigned int n)
{
if(n > 0)
{
printf("%d ", n);
printN(n-1);
}
return;
}

0

Może jakieś rekurencyjne rozwijanie szablonu w c++? ;)

1

Sa jeszcze fork, longjmp, exec.

1 użytkowników online, w tym zalogowanych: 0, gości: 1