Cześć. Rozwiązuję jakieś zadania z instrukcji na studiach i nie wiem jak mam do tego podejść. Np.mam tutaj zadanko gdzie trzeba napisać funkcję obliczającą silnię. Zrobiłem to iteracyjnie i rekurencyjnie.
#include <stdio.h>
// ITERACJA
int silnia(int n);
int main()
{
int liczba, wynik;
printf("Podaj liczbe do obliczenia silni: \n");
scanf("%d", &liczba);
wynik = silnia(liczba);
printf("%d! = %d",liczba, wynik);
return 0;
}
int silnia(int n)
{
int i, wynik = 1;
for(i = 1; i <= n; i++)
{
wynik = wynik * i;
}
return wynik;
}
// REKURENCJA
/*
int silnia(int n);
int main()
{
int liczba, wynik;
printf("Podaj liczbe: \n");
scanf("%d", &liczba);
wynik = printf("%d! = %d",liczba, silnia(liczba));
return 0;
}
int silnia(int n)
{
int wynik;
if(n <= 1)
{
wynik = 1;
return wynik;
} else
{
wynik = n * silnia(n - 1);
}
}
*/
Ale zrobiłem to na podstawie wygooglowanego schematu blokowego. No i zastanawiam się czy to wgl jest nauka czy oszustwo? No bo schemat blokowy wystarczy przełożyć na kod. Może powinienem to robić inaczej, mianowicie szukać jak wygląda algorytm od strony matematycznej i wtedy próbować to nakodzić zamiast patrzeć na schematy blokowe? Z drugiej strony do czegoś wyszukiwarka służy... Nie wiem. Pomocy.