¿Cuál es el valor de retorno de la siguiente función para 484? ¿A qué se debe en general?
bool fun(int n) { int sum = 0; for (int odd = 1; n > sum; odd = odd+2) sum = sum + odd; return (n == sum); }
(A) Falso, comprueba si un número dado es potencia de 3
(B) Falso, comprueba si un número dado es par o no
(C) Falso, comprueba si un número dado es impar o no
(D) Verdadero, comprueba si un número dado es un cuadrado perfecto.
Respuesta: (D)
Explicación: La función dada suma todos los números impares 1, 3, 5, 7, 9, 11…. hasta que la suma sea menor que n. Si la suma se vuelve igual a n, entonces devuelve verdadero. Esta es básicamente una prueba para números cuadrados perfectos.
Todos los números cuadrados perfectos se pueden escribir como suma de números impares.
4 = 1 + 3
9 = 1 + 3 + 5
16 = 1 + 3 + 5 + 7
36 = 1 + 3 + 5 + 7 + 9
49 = 1 + 3 + 5 + 7 + 9 + 11
Prueba de esta pregunta
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