Ułamki łańcuchowe - C++

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. :)

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ś!

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.

#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++;
    }
}
2

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

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...

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1