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

vreau si eu pas cu pas. la asta
x=23456
k=3​

Anexe:

Răspunsuri la întrebare

Răspuns de Apollyon
2

Răspuns:

#include <iostream>

int main() {

 int n, k;

 std::cin >> n >> k; /* n = 23456, k = 3 */

 int nr = 0, p = 1; /* nr = 0, p = 1 */

 while (n != 0 && k != 0) { /* 23456 != 0 && 3 != 0 (adevărat) */

   /* (prima iterație) 23456 % 2 != 0 (fals) */

   /* (a doua iterație) 2345 % 2 != 0 (adevărat) */

   /* (a treia iterație) 234 % 2 != 0 (fals) */

   /* (a patra iterație) 23 % 2 != 0 (adevărat) */

   /* (a cincea iterație) 2 % 2 != 0 (fals) */

   /* la a șasea iterație și n și k sunt 0 deci ieșim din while */

   if (n % 2 != 0) {

     /* (a doua iterație) nr = 0 + (5 * 1) = 5 */

     /* (a patra iterație) nr = 5 + (3 * 10) = 35 */

     nr = nr + n % 10 * p;

     /* (a doua iterație) p = 1 * 10 = 10

     /* (a patra iterație) p = 10 * 10 = 100 */

     p = p * 10;

   } else {

     /* (prima iterație) k = 3 - 1 = 2 */

     /* (a treia iterație) k = 2 - 1 = 1 */

     /* (a cincea iterație) k = 1 - 1 = 0 */

     k = k - 1;

   }

   /* (prima iterație) n = 23456 / 10 = 2345,6 = 2345 */

   /* (a doua iterație) n = 2345 / 10 = 234,5 = 234 */

   /* (a treia iterație) n = 234 / 10 = 23,4 = 23 */

   /* (a patra iterație) n = 23 / 10 = 2,3 = 2 */

   /* (a cincea iterație) n = 2 / 10 = 0,2 = 0 */

   n = n / 10;

 }

/* afișăm nr. ( 35 ) */

 std::cout << nr << "\n";

 return 0;

}


alinetare2005: poti sa ma mai ajuti la un ex?
Alte întrebări interesante