Rozwiązane

PROSZE O POMOC!!!!!
INFORMATYKA C++ PĘTLE



Na wejściu dana jest liczba n. Twoim zadaniem jest wygenerować ciąg Collatza zaczynający się od liczby n, a kończący się na pierwszym wystąpieniu liczby 1. Ciąg Collatza cn definiujemy następująco: c1 = n; jeżeli ck jest parzyste to ck+1 = ck/2; jeżeli ck jest nieparzyste to ck+1 = 3*ck+1. Jeżeli ciąg nigdy nie dojdzie do liczby 1, to odpowiedzią jest "NIE".

Wejście
Liczba naturalna n (1 <= n <= 10.000).

Wyjście
Ciąg Collatza zaczynający się od liczby n, a kończący się na pierwszym wystąpieniu liczby 1. W przypadku gdy ciąg zaczynający się od liczby n nigdy nie dojdzie do liczby 1, wypisz tylko "NIE", bez cudzysłowów.

Przykład
Dla danych wejściowych

1
poprawną odpowiedzią jest

1
Dla danych wejściowych

16
poprawną odpowiedzią jest

16 8 4 2 1
Dla danych wejściowych

6
poprawną odpowiedzią jest

6 3 10 5 16 8 4 2 1



Odpowiedź :

Odpowiedź:

#include <iostream>

using namespace std;

int main()

{  

int n;

cin >> n;

if (n > 0) {

 cout << n << " ";

 while (n != 1)

 {

  if (n % 2 == 0) n = n / 2;

  else n = n * 3 + 1;

  cout << n << " ";

 }

}

else cout << "NIE";

}