Ułamki łańcuchowe - C++

Ułamki łańcuchowe - C++
YE
  • Rejestracja:około 6 lat
  • Ostatnio:około 6 lat
  • Postów:10
0

Czołem wszystkim forumowiczom!
Napotkałem na zadanie, które wydaje mi się ciekawe, ale nie mam w ogóle pojęcia jak się do niego zabrać.
Z treści zadania dowiadujemy się, że każdą liczbę można przedstawić w takiej postaci i naszym zadaniem jest dla wprowadzonych danych, np. 7 i 11 wypisać 1 1 1 3, czyli a1, a2, a3 i a4.

https://ibb.co/wcRmY3t

Prosiłbym o pomocną dłoń w przynajmniej nakierowaniu mnie na dobry tok myślenia.

Z góry dziękuję i pozdrawiam. :)

edytowany 2x, ostatnio: yep
MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:mniej niż minuta
1

\frac{p}{q}=\frac{1}{a_1 + \frac{p_1}{q_1}}
z tego możesz otrzymać postać rekurencyjną na wyrazy ułamka łańcuchowego.
Zresztą na wiki algorytm jest opisany, więc najwyraźniej nawet nie googlałeś!


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22
YE
  • Rejestracja:około 6 lat
  • Ostatnio:około 6 lat
  • Postów:10
0
MarekR22 napisał(a):

\frac{p}{q}=\frac{1}{a_1 + \frac{p_1}{q_1}}
z tego możesz otrzymać postać rekurencyjną na wyrazy ułamka łańcuchowego.
Zresztą na wiki algorytm jest opisany, więc najwyraźniej nawet nie googlałeś!

Googlałem, ale niestety czegoś najwyraźniej nie rozumiem, bo poniższe rozwiązanie po prostu nie działa.

Kopiuj
#include<bits/stdc++.h>
using namespace std;

int main()
{

    float x = 7/11;
    int A[1000];

    float r = x;
    int n = 0;

    A[0] = floor(r);
    while (r-A[n]>0)
    {
        r = 1/(r-A[n]);
        n++;
    }
}
MarekR22
przecież to ma błąd programistyczny! W C++ 7/11 jest równe ZERO.
GI
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 5 lat
  • Postów:35
2

Weś sobie zobacz jaka jest wartość x po wykonaniu pierwszej linijki maina.

YE
  • Rejestracja:około 6 lat
  • Ostatnio:około 6 lat
  • Postów:10
0
git napisał(a):

Weś sobie zobacz jaka jest wartość x po wykonaniu pierwszej linijki maina.

No fakt, równa się zero. Po zamianie na 7.0/11.0 mamy już wynik dodatni. Dzięki. Nie mniej dalej nie rozumiem co robię nie tak w dalszej części kodu...

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:3 minuty
  • Postów:4924
2

MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:mniej niż minuta
0

Wersja przekombinowana: https://wandbox.org/permlink/bcDAo8PVNqUgxT0J
i to samo w python https://ideone.com/BIovwR :)


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.