Rezolvare completă PbInfo #2612 Fibo_SumaCifre

Cerința

Numim suma cifrelor până la o cifră a unui număr X, o valoare mai mică decât 10 obținută prin adunarea cifrelor numărului X și repetarea procedurii dacă suma obținută este mai mare decât 10, de această dată având drept X suma obținută la pasul precedent.

Se dă un număr n reprezentând poziția unui număr Fn din șirul lui Fibonacci. Să se calculeze suma cifrelor până la o cifră a lui Fn.

Reamintim că primele două numere din șirul lui Fibonacci au valoarea 1, iar restul se obțin ca fiind suma precedentelor două (pentru orice poziție n mai mare strict decât 2, Fn = Fn-1 + Fn-2).

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran valoarea S, reprezentând suma cifrelor până la o cifră a numărului Fn.

Restricții și precizări

  • 1 ≤ n ≤ 1019

Exemplu

Intrare

11

Ieșire

8

Explicație

Al unsprezecelea număr din șirul lui Fibonacci este 89 (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…). Adunând cifrele acestuia obținem 17. Deoarece 17 este mai mare decât 10 se adună și cifrele acestuia: 1+7=8.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Fibo_SumaCifre :

#include <iostream>

using namespace std;

int main()
{
    long long n;
    cin >> n;

    n%=24;  // pentru ca sirul se repeta din 24 in 24

    int i=1;
    int j=1;
    for (int contor=3; contor<=n; contor++)
    {
        int k = i + j;
        i = j;
        j = k;
    }
    cout << (j % 9? j % 9 : 9); 

    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2612 Fibo_SumaCifre

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2612 Fibo_SumaCifre de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!