Zadania na studiach - czy metoda nauki jest złudna?

0

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.

0

Spoko, jeszcze na poziomie mida, przepisywwanie kodu ze stack overflow z lekkim refactorem (daj Boże) to dość częsta praktyka, Możesz czuć się naprawdę kreatywny i fancy, że wybrałeś schemat blokowy. xD

4

Tak ogólnie to umiejętność czytania dokumentacji i szukania rozwiązań dla problemów to 90% pracy programisty.
Niemniej, jeśli wiedząc że silnia to 1*2*3*4*...*k nie potrafisz samodzielnie wymyślić "algorytmu" do jej policzenia, to może warto się zastanowić nad inną ścieżką kariery?

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