Hej:)
Niedawno opracowałam algorytm funkcji rekurencyjnej która ma zwrócić sumę ciągu 1+1/2+1/3+...+1/n (n wprowadza użytkownik) wygląda on tak:
float sum(int n){
if(n==1) return 1.0;
else return sum(n-1)+1.0/n;
}
zastanawiam się w jaki sposób można by było przekształcić tą funkcję rekurencyjną by liczyła sumę ciągu przemiennego tzn.:
1-1/2+1/3-1/4+....+1/n
ja bym zaproponowała coś takiego:
float sum(int n){
if(n==1) return 1.0;
else if(n%2==0) return sum(n-1)-1.0\n;
else return sum(n-1)+1.0/n;
}
Pytanie tylko czy coś takiego przejdzie i będzie poprawnie liczyło sumę? Nie potrzebuję pełnego programu interesuje mnie tylko ta część rekurencyjna.