Proszę potrzebuje pomocy z tym zadaniem. Musi być napisane w kodzie C#
Dany jest ciąg xn określony rekurencyjnie:
x0=5,
x1=1,
xn+1=2*xn-1, jeśli n jest nieparzyste i
xn+1= (xn – xn-1)/2, jeśli n jest parzyste
Napisz program, który obliczy sumę n zadanych kolejnych liczb tego ciągu.
z gory dziekiii


Odpowiedź :

Odpowiedź

Kod źródłowy w pierwszym załączniku, w drugim podałam jak wyglądają przykładowe wyniki uruchomienia.

Przykładowe wyniki uzyskałam na platformie replit.

Zadanie nie jest dobrze sformułowane. Otóż dwa razy występuje w nim wielkość  n.  Dużo lepiej byłoby przepisać zależności rekurencyjne.

Ciąg [tex]x_n[/tex] jest określony następująco

  • [tex]x_0 = 5[/tex]
  • [tex]x_1 = 1[/tex]
  • [tex]x_{k + 1} = 2 \cdot x_{k - 1}[/tex]    gdy [tex]k[/tex] jest nieparzyste

  • [tex]x_{k + 1} = \dfrac {~ x_k - x_{k - 1} ~} 2[/tex]    gdy [tex]k[/tex] jest parzyste

Wtedy mamy

[tex]x_0 = 5, ~~~~~~~~~~~~~ \, n = 1, ~~ suma = 5[/tex]

[tex]x_1 = 1, ~~~~~~~~~~~~~ \, n = 2, ~~ suma = 6[/tex]

[tex]x_2 = 10, ~~j = 1, ~~ n = 3, ~~ suma = 16[/tex]

[tex]x_3 = 4,\!5, ~~j = 2, ~~ n = 4, ~~ suma = 20,\!5[/tex]

[tex]x_4 = 20, ~~j = 3, ~~ n = 5, ~~ suma = 40,\!5[/tex]

Wyjaśnienie

Kod źródłowy, tak jak go załączyłam, działa na platformach (w programach, w środowiskach) OnlineGDB, replit i Visual Studio.

Natomiast platforma dotnetfiddle wymaga usunięcia wierszy 2. oraz 8. Być może są jeszcze inne platformy gdzie tak trzeba zrobić.

Zobacz obrazek 0AB
Zobacz obrazek 0AB