Estoy tratando de multiplicar un número a con b hasta que llegue a un número dado c, y almacenar en una variable cuántas veces se ha multiplicado
digamos
a = 1000 b = 0.75 c = 500
Necesito multiplicar el número y su resultado al menos 3 veces para obtener 500 o menos.
He visto sobre Math.log() pero no estoy seguro de que sea el método correcto aquí
¿Alguna ayuda por favor?
Digamos que el número de veces que hay que multiplicar por b es x . Simplificando la ecuación para resolver esa x , y obtienes:
a * (b ** x) <= c b ** x <= c / a log_base_b(b ** x) <= log_base_b(c / a) x <= log_base_b(c / a) x <= Math.log(c / a) / Math.log(b) -- see https://stackoverflow.com/q/3019278 x = Math.ceil(Math.log(c / a) / Math.log(b))Lo que parece correcto:
const a = 1000; const b = 0.75; const c = 500; console.log(Math.ceil(Math.log(c / a) / Math.log(b)));Incluso si no supieras matemáticas, podrías hacer
let a = 1000; const b = 0.75; const c = 500; let count = 0; while (a > c) { count++; a *= b; } console.log(count);