-
1. Data: 2011-02-12 19:44:33
Temat: Re: Rekurencja
Od: Darek <d...@g...com>
Dziękuję :-) No jest to logiczne. Przetłumaczyłem sobie to trochę na "mój poziom"
(nie znam szablonów) i mam takie coś (mam nadzieje, że dobrze "przetłumaczyłem"):
int oblicz(int n)
{
if(n==1) return 0;
return oblicz(n-1)*-1+n%2;
}
int main()
{
cout << oblicz(4) << endl;
system("PAUSE");
return 0;
}
Dziwi mnie tylko jedna rzecz. Gdy chcę wyświetlić wartość drugiego wyrazu, to program
wypisuje mi 0, a powinno być 1. Idąc dalej, gdy chcę trzeci wyraz, otrzymuję 1, a
powinno być -1. Wszystko jest jakby przesunięte o 1 wyraz (0;1;-1;2;-2;3;-3;4;-4...).
Pomógłbyś jeszcze rozwiązać ten problem? Dzięki za dotychczasową pomoc :-)
-
2. Data: 2011-02-12 21:23:51
Temat: Re: Rekurencja
Od: Michoo <m...@v...pl>
W dniu 12.02.2011 20:44, Darek pisze:
> Dziwi mnie tylko jedna rzecz. Gdy chcę wyświetlić wartość drugiego wyrazu, to
program wypisuje mi 0, a powinno być 1.
Nie. Ciąg który Ci podałem zaczyna się od a_0.
> Pomógłbyś jeszcze rozwiązać ten problem?
Ależ oczywiście. Musisz przesunąć cały ciąg o jeden element w lewo.
Szukaj w okolicy n - masz 3 możliwości ;)
P.S.
Może programowanie to nie był najszczęśliwszy wybór?
--
Pozdrawiam
Michoo