czesc
mam takie zadanko
Napisz program, który dokona obliczeń zgodnie z algorytmem. Zaczynamy od dowolnej liczby całkowitej n. Jeżeli n jest parzyste to dzielimy je przez 2 w przeciwnym wypadku mnożymy przez 3 i dodajemy 1 (3n+1). Obliczenia powtarzamy dla kolejnej wartości n. Kończymy, gdy wartość n osiągnie 1, czyli dla n=1.
W odpowiedzi proszę wyświetlić kolejne wartości n oraz ilość cykli.
Przykład:
n=10
ciąg: 10 5 16 8 4 2 1
odpowiedź: 6 cykli.
i napisany kod, ale mam problem z wyswietleniem tego ciągu n. wie ktos jak to zrobic?
to moj kod poki co
#include <stdio.h>
int main() {
int n;
int cykle=0;
printf("podaj liczbę całkowitą: ");
scanf("%i", &n);
while(n>1){ //program nie zadziała dla liczb mniejszych lub równych 1
if(n%2 == 0){
printf("liczba %i jest parzysta\n", n);
printf("n/2 = %i\n", n/2);
n=n/2;
}
else{
printf("liczba %i nie jest parzysta\n", n);
printf("3n+1 = %i\n", 3n+1);
n=3n+1;
}
cykle+=1;
}
printf("liczba cykli: %i \n", cykle);
return 0;
}