Last active
December 10, 2023 12:58
-
-
Save terremoth/ddbf2a9d434b2acc2d7ffebdadd1d286 to your computer and use it in GitHub Desktop.
Quando cobrar bruto por algo para saber quanto quer ganhar, sabendo que vai ter uma taxa de desconto em cima do preço
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function quanto_cobrar(quanto_quero_ganhar, taxa_de_desconto) { | |
let i = 0; | |
function loop(valor) { | |
let resultado = parseFloat((valor - (valor * taxa_de_desconto)).toFixed(2)); | |
let acrescentar = parseFloat((valor - resultado).toFixed(2)); | |
if (i === 10) {return quanto_quero_ganhar + acrescentar;}i++; | |
if (resultado < quanto_quero_ganhar) { | |
return loop(quanto_quero_ganhar + acrescentar); | |
} | |
return quanto_quero_ganhar + acrescentar; | |
} | |
return loop(quanto_quero_ganhar); | |
} | |
console.log(quanto_cobrar(10000, 0.04)); // 10416.67 | |
// "quero receber 10.000, mas terá uma taxa de 4% do governo, logo preciso | |
// cobrar 10416.67 bruto para obter 10.000 limpo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function quanto_cobrar(quanto_quero_ganhar, taxa_de_desconto = 4) { | |
const indice = 100/(100 - taxa_de_desconto); | |
return parseFloat((quanto_quero_ganhar * indice).toFixed(2)); | |
} | |
// ou ainda em uma linha: | |
const quanto_cobrar = (q,t=4) => parseFloat((q * (100/(100 - t))).toFixed(2)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Esse caso, um algoritmo O(n²) pode ser otimizado e simplificado em formato de formula matemática, a ponto de virar um algoritmo simples, O(1), vejamos acima.