Considere el siguiente código C. Suponga que unsigned long int
la longitud del tipo es de 64 bits.
unsigned long int fun(unsigned long int n) { unsigned long int i, j = 0, sum = 0; for( i = n; i > 1; i = i/2) j++; for( ; j > 1; j = j/2) sum++; return sum; }
El valor devuelto cuando llamamos fun
con la entrada 2 40 es
(A) 4
(B) 5
(C) 6
(D) 40
Respuesta: (B)
Explicación:
// n takes 2^40 unsigned long int fun(unsigned long int n) { // initialized sum = 0 unsigned long int i, j = 0, sum = 0; //First it takes i = n = 2^40, //then it divides i by 2 and incremented once j //each time, that's will make makes j = 40, for( i=n; i>1; i=i/2) j++; //Now the value of j = 40, //it divides j by 2 and incremented once sum //each time, that's will make makes sum = 5, for( ; j>1; j=j/2) sum++; //returns sum = 5 return sum; }
Entonces, la respuesta es 5.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA