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

Răspunsuri la întrebare
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;
}