Informatică, întrebare adresată de neagoeandreea5, 8 ani în urmă

Fie n un numar natural. Daca el este impar,se inmulteste cu 3 si la rezultat se adauga 1.Daca este par se imparte la 2. Se repeta aceste operatii pana cand se obtine rezultatul 1. TREBUIE REZOLVAT IN CODEBLOCKS.Multumesc!​

Răspunsuri la întrebare

Răspuns de Apollyon
0

Răspuns:

#include <stdio.h>

int main()

{

   int n;

   printf("Introdu n >> ");

   scanf("%d", &n);

   if (n % 2 == 0)

       while (n != 1)

           n /= 2;

   else

   {

       n = (n * 3) + 1;

       if (n % 2 == 0)

           while (n != 1)

               n /= 2;

   }

   printf("Noul n >> %d\n", n);

   return 0;

}

Explicație:

Citești n-ul de la tastatură, dacă restul impărțirii lui n la 2 este 0 înseamnă că numărul este par deci împarți la 2 până când numărul e diferit de 1.
Dacă restul este diferit de 0 înseamnă că numărul este impar deci înmulțești numărul cu 3, aduni cu 1 și verifici dacă rezultatul este par. Dacă este par din nou împarți la 2 până când rezultatul final este 1.

Alte întrebări interesante