problem z rekurencją
Ostatnio zmodyfikowano 2015-04-04 13:41
Nitro Temat założony przez niniejszego użytkownika |
problem z rekurencją » 2015-04-01 13:58:01 Witam, Głowie się nad funkcją rekurencyjną, wpisując 2 do 3 w wyniku powinno sie pojawić 8 i tak się dzieje natomiast czemu trzeba zastosowac tu warunek if(n>1) a nie if(n>0) ten drugi wydaje się bardziej logiczny aby pętla obróciła się trzy razy bo w przypadku n>1 obraca się tylko dwa.. #include <stdio.h> #include <stdlib.h> int funkcja( int x, int n ); int main( void ) { int liczba = 0; int potega = 0; printf( "*******************************************\n" ); printf( "Uzytkowniku wprowadz liczbe oraz jej potege\n" ); while(( scanf( "%d %d", & liczba, & potega ) ) == 2 ) { printf( "Oto wynik dzialania: %d\n", funkcja( liczba, potega ) ); } system( "pause" ); return 0; } int funkcja( int x, int n ) { if( x > 0 ) { if( n > 1 ) x = x * funkcja( x, n - 1 ); } return x;
|
|
Wronski |
» 2015-04-01 14:34:26 |
|
Brunon3 |
» 2015-04-01 14:43:06 @up: Właśnie chciałem dać mu ten link, ale sobie przypomniałem że @Monika90 pisała żeby nie dawać linków do kursu kreacjonisty |
więc nie dałem... Za to Ty dałeś. :) ...i jeszcze lepiej by było jakbyś dał ten link w znacznik [a href="link"] (WYNIK: link). ;) -BD. |
|
Monika90 |
» 2015-04-01 15:23:40 Dawajcie sobie linki do czego chcecie, mnie już to nie obchodzi |
|
Nitro Temat założony przez niniejszego użytkownika |
» 2015-04-02 10:36:51 Udało mi się napisać działającą formułę dla potęgowania liczb dodatnich, dla ujemnych niestety nie, program się zawiesza float funkcja( float x, float n ) { if( x > 0 ) { if( n == 0 ) return 1; else return x * funkcja( x, n - 1 ); if( x < 0 ) ??
|
|
C-Objective |
» 2015-04-04 13:41:23 A nie umiesz pow użyć? |
|
« 1 » |