Untitled
unknown
c_cpp
9 months ago
2.3 kB
1
Indexable
#include <iostream> int sumator( int jeszczeKrokow, int sumaDotychczas ); void dwojkowo( int liczba ); void schodki( int ile, char znak ); //***************************************************** int main() { std::cout << "Sumowanie liczb naturalnych od 0 do n. Podaj wartosc n: "; int n = 0; std::cin >> n; std::cout << "\nSuma liczb naturalnych od 0 do " << n << " to = \n" << sumator(n, 0 ) << "\n"; //---------------------------------------------------------- // inny przykład funkcji rekurencyjnej //---------------------------------------------------------- int liczba = 241; std::cout << "\n" << liczba << " to dwojkowo "; dwojkowo(liczba); std::cout << "\n"; liczba = 30942; std::cout << "\n" << liczba << " to dwojkowo "; dwojkowo(liczba); std::cout << "\n"; return 0; } //***************************************************** int sumator( int jeszczeKrokow, int sumaDotychczas ) { int rezultat = 0; static int krokRekurencji; int toPietroNr = krokRekurencji; krokRekurencji++; schodki(toPietroNr, '>'); std::cout << sumaDotychczas << " + " << toPietroNr << " = " << sumaDotychczas + toPietroNr << "\n"; // właściwa operacja sumowania sumaDotychczas += toPietroNr; // warunek zatrzymujący rekurencję if (jeszczeKrokow > 0) { // zatem kontynuujemy wywołania rekurencyjne rezultat = sumator(jeszczeKrokow - 1, sumaDotychczas); } else { // zatem zatrzymujemy std::cout << "........to ostatni krok, wracamy......\n"; rezultat = sumaDotychczas; } schodki(toPietroNr, '<'); std::cout << "\n"; krokRekurencji--; return rezultat; } //***************************************************** void dwojkowo( int liczba ) { int reszta = liczba % 2; if (liczba > 1) // warunek zatrzymujący { dwojkowo(liczba / 2); // wywołanie rekurencyjne } std::cout << reszta; } //***************************************************** void schodki( int ile, char znak ) { std::cout << ile << " pietro: "; for (int m = 0; m < ile; m++) { std::cout << znak << " "; } std::cout << " "; }
Editor is loading...
Leave a Comment