Czesc, staram sie rozwiazac takie oto zadanie,
Napisać program, który wyznacza i drukuje liczby ciągu w ten sposób, że dwa pierwsze są równe odpowiednio 0 i 1,
a każdy następny wyraz jest sumą dwóch poprzednich. Liczby drukować aż do momentu, gdy przekroczą one stałą G.
Następnie wydrukować, ile było liczb parzystych i ile nieparzystych, ile dwucyfrowych i ile trzycyfrowych w tym ciągu.
Napisalem taki kod
#include <iostream>
using namespace std;
int main()
{
const int G = 1500;
int poprzedni = 0;
int aktualny = 1;
int suma;
int licznik_parzystych = 0;
int licznik_nieparzystych = 0;
int licznik_dwucyfrowych = 0;
int licznik_trzycyfrowych = 0;
cout << aktualny;
do
{
suma = poprzedni + aktualny;
poprzedni = aktualny;
aktualny = suma;
cout << " " << suma;
if (suma % 2 == 0)
{
licznik_parzystych++;
}
else
{
licznik_nieparzystych++;
}
if (suma < 100 && suma >= 10)
{
licznik_dwucyfrowych++;
}
else if (suma < 1000 && suma >=100)
{
licznik_trzycyfrowych++;
}
} while (suma <= G);
cout << "\nPojawilo sie " << licznik_parzystych << " liczb parzystych i " << licznik_nieparzystych << " liczb nieparzystych. ";
cout << "\nPojawilo sie " << licznik_dwucyfrowych << " liczb dwucyfrowych " << licznik_trzycyfrowych << " liczb trzycyfrowych. \n";
system("pause");
return 0;
}
Jednak nie do konca dziala tak jakbym chcial. Po pierwsze nie moge korzystac z tablic. Problem jest z petla do while, otoz wyswietla mi na koncu rowniez ostatni wynik wiekszy od stalej G.
Czy istnieje mozliwosc aby ten wynik sie nie wyswietlal ?