Skip to content

Instantly share code, notes, and snippets.

@ebnersilva
Created February 11, 2021 12:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ebnersilva/9434934cf1f1f004a02906cf6b09051d to your computer and use it in GitHub Desktop.
Save ebnersilva/9434934cf1f1f004a02906cf6b09051d to your computer and use it in GitHub Desktop.
Algoritmo em javascript para calcular troco em Notas de: 100, 50, 25, 10, 5, 2 reais e moedas de: 1 Real, 50, 25, 10, 5, 1 centavos
const valorCompra = window.prompt("Qual o valor da compra? ");
const valorPago = window.prompt("Qual o valor pago?");
if (valorPago < valorCompra) {
alert("O valor pago é menor que o valor da compra! Tente novamente!");
} else {
const troco = valorPago - valorCompra;
let valorRestante = 0;
let quantitdadeN100 = 0;
let quantitdadeN50 = 0;
let quantidadeN20 = 0;
let quantidadeN10 = 0;
let quantidadeN5 = 0;
let quantidadeN2 = 0;
let quantidadeM1r = 0;
let quantidadeM50c = 0;
let quantidadeM25c = 0;
let quantidadeM10c = 0
let quantidadeM5c = 0;
let quantidadeM1c = 0;
let valorN100 = 0;
let valorN50 = 0;
let valorN20 = 0;
let valorN10 = 0;
let valorN5 = 0;
let valorN2 = 0;
let valorM1r = 0;
let valorM50c = 0;
let valorM25c = 0;
let valorM10c = 0;
let valorM5c = 0;
let valorM1c = 0;
// Notas
quantidadeN100 = Math.floor(Math.floor(troco) / 100);
valorN100 = quantidadeN100 > 0 ? quantidadeN100 * 100 : 0;
valorRestante = troco - valorN100;
quantidadeN50 = Math.floor(Math.floor(valorRestante) / 50);
valorN50 = quantidadeN50 > 0? quantidadeN50 * 50 : 0;
valorRestante = troco - valorN100;
quantidadeN20 = Math.floor(Math.floor(valorRestante) / 20); // 1
valorN20 = quantidadeN20 > 0 ? quantidadeN20 * 20 : 0; 20,00
valorRestante = valorRestante - valorN20; // 15
quantidadeN10 = Math.floor(Math.floor(valorRestante) / 10); // 1
valorN10 = quantidadeN10 > 0 ? quantidadeN10 * 10 : 0; // 10,00
valorRestante = valorRestante - valorN10; // 5
quantidadeN5 = Math.floor(Math.floor(valorRestante) / 5); // 1
valorN5 = quantidadeN5 > 0 ? quantidadeN5 * 5 : 0; // 5,00
valorRestante = valorRestante - valorN5; // 0
quantidadeN2 = Math.floor(Math.floor(valorRestante) / 2); // 0
valorN2 = quantidadeN2 > 0 ? quantidadeN2 * 2 : 0; // 0
// Moedas
valorRestante = valorRestante - valorN2;
quantidadeM1r = Math.floor(Math.floor(valorRestante) / 1);
valorM1r = quantidadeM1r > 0 ? quantidadeM1r * 1 : 0;
valorRestante = valorRestante - valorM1r;
quantidadeM50c = Math.floor(valorRestante / 0.5);
valorM50c = quantidadeM50c > 0 ? quantidadeM50c * 0.5 : 0;
valorRestante = valorRestante - valorM50c;
quantidadeM25c = Math.floor(valorRestante / 0.25);
valorM25c = quantidadeM25c > 0 ? quantidadeM25c * 0.25 : 0;
valorRestante = valorRestante - valorM25c;
quantidadeM10c = Math.floor(valorRestante / 0.10);
valorM10c = quantidadeM10c > 0 ? quantidadeM10c * 0.10 : 0;
valorRestante = valorRestante - valorM10c;
quantidadeM5c = Math.floor(valorRestante / 0.05);
valorM5c = quantidadeM5c > 0 ? quantidadeM5c * 0.05 : 0;
valorRestante = valorRestante - valorM5c;
quantidadeM1c = Math.floor(valorRestante / 0.01);
valorM1c = quantidadeM1c > 0 ? quantidadeM1c * 0.01 : 0;
valorRestante = Number(valorRestante.toFixed(2)) - valorM1c;
// Mostra as notas
if (quantidadeN100 > 0) {
console.log(`Você tem que devolver ${quantidadeN100} nota(s) de 100 reais`);
}
if (quantidadeN50 > 0) {
console.log(`Você tem que devolver ${quantidadeN50} nota(s) de 50 reais`);
}
if (quantidadeN20 > 0) {
console.log(`Você tem que devolver ${quantidadeN20} nota(s) de 20 reais`);
}
if (quantidadeN10 > 0) {
console.log(`Você tem que devolver ${quantidadeN10} nota(s) de 10 reais`);
}
if (quantidadeN5 > 0) {
console.log(`Você tem que devolver ${quantidadeN5} nota(s) de 5 reais`);
}
if (quantidadeN2 > 0) {
console.log(`Você tem que devolver ${quantidadeN2} nota(s) de 2 reais`);
}
// Mostra as moedas
if (quantidadeM1r > 0) {
console.log(`Você tem que devolver ${quantidadeM1r} moeda(s) de 1 real`);
}
if (quantidadeM50c > 0) {
console.log(`Você tem que devolver ${quantidadeM50c} moeda(s) de 50 centavos`);
}
if (quantidadeM25c > 0) {
console.log(`Você tem que devolver ${quantidadeM25c} moeda(s) de 25 centavos`);
}
if (quantidadeM10c > 0) {
console.log(`Você tem que devolver ${quantidadeM10c} moeda(s) de 10 centavos`);
}
if (quantidadeM5c > 0) {
console.log(`Você tem que devolver ${quantidadeM5c} moeda(s) de 5 centavos`);
}
if (quantidadeM1c > 0) {
console.log(`Você tem que devolver ${quantidadeM1c} moeda(s) de 1 centavos`);
}
if (valorRestante) {
console.log(`Você tem que devolver ${valorRestante} em balinhas!`);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment