Rekurencja zadanie maturalne
Ostatnio zmodyfikowano 2015-02-11 23:46
Jamalek Temat założony przez niniejszego użytkownika |
Rekurencja zadanie maturalne » 2015-02-11 23:12:55 Tutaj znajduje się treść zadania: http://www.dlamaturzysty.info/galeria/36234/133033/6895
Mój źle działający kod:
#include <iostream> using namespace std; //////////////////////////// void Korale(int n) { for(int i=1;i<n;i++) { if(i==1) cout<<"czarny "; ///////////////////////////////////////////////////// if(i&2==0) { Korale(n/2); cout<<"bialy "; } /////////////////////////////////////////////////// if(i&2!=0) { Korale((n-1)/2); cout<<"czarny "; } } } int main(int argc, char** argv) { Korale(8); return 0; }
W którym miejscu znajduje się błąd, dobrze podszedłem do tego zadania?
|
|
megatron |
» 2015-02-11 23:22:02 Wg mnie '%' nie '&' ;)
Edit: Wywolujesz funkcje w tej samej funkcji? To tak jak by kwiat sam sie sadzil, problem sam naprawial i wgl wszystko samo z sb;p |
|
Jamalek Temat założony przez niniejszego użytkownika |
» 2015-02-11 23:27:07 faktycznie '%'= to jest reszta z dzielenia ups:) poprawilem ale program dalej nie pokazuje poprawnych wyników. Masz jeszcze jakiś pomysł? dobrze się za to zabrałem? czy należy to napisać w inny sposób? |
|
megatron |
» 2015-02-11 23:30:20 Jak up napisalem to funkcja wywoluje sama sb To tak mozna?;p Ja bymwgl wyrzucil ta petle tylko dal poprostu zmienna n i wykonywal procedure liniowo;)
Edit: mozesz tez w funkcji main zadeklarowac zmienna n i robic wg procedury wykonujesz funkcje z parametrem n=1 gdzie parametr jest wskaznikiem Nastepnie w funkcji main sprawdzasz wartosc zmiennej n czy jest parzysta i eywolujesz funkcje tak jak dalej w poleceniu |
|
PaSaSaP |
» 2015-02-11 23:42:33 void Korale(int n) { if(n == 1) { cout << "czarny "; return; } if(n % 2 == 1)//Nieparzyste { Korale((n - 1) / 2); cout << "czarny "; return; } //Parzyste Korale(n / 2); cout << "bialy "; return; } |
|
Jamalek Temat założony przez niniejszego użytkownika |
» 2015-02-11 23:46:58 Dzięki Papasap o to mi chodziło:) temat można zamknąć:) |
|
« 1 » |