While y do-while en C++
while pregunta antes de cada pasada; do-while corre el cuerpo una vez antes de preguntar.
int collatz_steps(int n) {
int steps = 0;
while (n > 1) {
n = (n % 2 == 0) ? n / 2 : 3 * n + 1;
steps++;
}
return steps;
}
int count_digits(int n) {
int digits = 0;
do { // runs at least once, even for 0
n /= 10;
digits++;
} while (n > 0);
return digits;
}
Cómo funciona
- El bucle
whilede Collatz sigue partiendo a la mitad o triplicandonhasta llegar a 1. - El ternario elige
n / 2para los valores pares y3 * n + 1para los impares. do { ... } while (n > 0)divide al menos una vez, así que 0 también cuenta un dígito.
Palabras clave y builtins usados aquí
dointreturnwhile
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 286
- Tokens
- 85
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 60 segundos.
Paso 3 de 3 en Control de flujo; paso 6 de 27 en Fundamentos del lenguaje.