Alguem tem ai alguma coisa que qdo digito 1230 (preciso de 12 notas de 100 e 3 de 10 reais?
dê uma olhada no anexo!
posso te ajudar com a lógica
[]'s
Pense o seguinte:
Você vai pegar esse int e vai dividir ele por 100, ignorando o resto…com isso você vai ter a parte de cedulas de 100 reais…depois você divide de novo por 100 e pega o resto…no final você tem corretamente a divisão das celulas a partir dessa entrada!
entendeu a lógica??
public int[] getMoney(int money)
{
int qtdNotas[] = new int[1]; /*vai dar um return sendo cada index um qtd de notas*/
if(money != null)
{
if (money >= 100)
{
return qtdNotas[0] = money/100;
//index 0 notas de 100
return qtdNotas[1] = money%100;
//index para notas de 10;
else
{
return qtdNotas[1] = money%100;
}
}
Você quer um programa que faça isso ou tem que desenvolver um? Isso tá com cara de trabalho de faculdade (quem trabalha com ATM costuma ter algum conhecimento prévio), acertei?
Complementando o que o akumaldo exemplificou:
Se você precisa (e provavelmente é o caso) fazer a comparação com todas as unidades monetárias,
a lógica é a mesma, ou seja, você vai pegar o valor (que deve ser um valor do tipo double
se você vai trabalhar com valores monetários, devido às casas decimais) e dividir pelas unidades
monetárias, da maior até a menor, pegando sempre os restos.
Lembrando que para valores decimais, não devemos fazer comparações diretas como 100.00 = 100.00, mas sim comparações dentro de uma faixa de valores, como 100.00 > 99.999 ou 100.00 < 100.001… aí vai depender da necessidade de precisão.
Galera,
Eu sei que este assunto já foi muito discutido aqui, inclusive com o ótimo tópico/pesquisa aberto pelo Thingol. Sei também que, assim como muitas vezes recorremos a este fórum para sanarmos nossas dúvidas, também temos o "dever" de auxiliar os demais colegas.
Mas [b]nanda[/b], sinceramente, se a cada exercício que o seu professor passar, você vier aqui no GUJ e simplesmente postar um tópico com esse ar de "alguém tem isso pronto aí ?", eu e vários outros colegas simplesmente passaremos a ignorar seus posts.
Procure fazer seus exercícios e, quando as dúvidas pintarem, poste-as aqui, que teremos o maior prazer em ajudar.
Galera ,dê uma olha nesse codigo acho que minha logica ta certa fiz por div e mod.So que tem um probleminha com a parte decimal tipo qdo coloco250 ele diz2,50 notas de sem e ó é p/ ele resgatar o 2 a parte iinteira.
import javax.swing.JOptionPane;
public class cedulas1
{
public static void main(String args[])
{
double valor,aux1, aux2, aux3 , aux4, aux5, aux6, aux7, aux8, aux9, aux10, n100, n50, n20, n10, n5, n2, n1, n050, n010 ,n005 ,n001;
valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o salario: "));
aux1= valor%100;
aux2= aux1%50;
aux3=aux2%20;
aux4=aux3%10;
aux5=aux4%5;
aux6=aux5%2;
aux7=aux6%1;
aux8=aux7%0.50;
aux9=aux8%0.10;
aux10=aux9%0.05;
n100=valor/100;
n50=aux1/50;
n20=aux2/20;
n10=aux3/10;
n5=aux4/5;
n2=aux5/2;
n1=aux6/1;
n050=aux7/0.50;
n010=aux8/0.10;
n005=aux9/0.05;
n001=aux9%0.05;
JOptionPane.showMessageDialog(null,"Notas de R$100: " +n100);
JOptionPane.showMessageDialog(null,"Notas de R$50: " +n50);
JOptionPane.showMessageDialog(null,"Notas de R$20: " +n20);
JOptionPane.showMessageDialog(null,"Notas de R$10: " +n10);
JOptionPane.showMessageDialog(null,"Notas de R$5: " +n5);
JOptionPane.showMessageDialog(null,"Notas de R$2: " +n2);
JOptionPane.showMessageDialog(null,"Notas de R$1: " +n1);
JOptionPane.showMessageDialog(null,"Notas de R$0.50: " +n050);
JOptionPane.showMessageDialog(null,"Notas de R$0.10: " +n010);
JOptionPane.showMessageDialog(null,"Notas de R$0.05: " +n005);
JOptionPane.showMessageDialog(null,"Notas de R$0.01: " +n001);
System.exit(0);
}
}
Supondo que vc possui disponiveis notas de 50, 10, 5 e 1. Vc pode fazer o seguinte:
int qtde50 = 0;
int qtde10 = 0;
int qtde5 = 0;
int qtde1 = 0;
while (valor>50) {
valor-=50;
++qtde50;
}
while (valor>10) {
valor-=10;
++qtde10;
}
while (valor>5) {
valor-=5;
++qtde5;
}
while (valor>1) {
valor-=1;
++qtde1;
}
ó, vou quebrar teu galho hein …
é só terminar…
double valor_monetario = Double.parseDouble(JOptionPane.showInputDialog("Digite o salario: "));
double INDICE = 0.0002;
long[] qtde = new long[12];
if(valor_monetario> (100.00-INDICE)){
qtde[0] = (long)Math.floor(valor_monetario/(100.00-INDICE));
valor_monetario = valor_monetario%100.00;
}
if(valor_monetario> (50.00-INDICE)){
qtde[1] = (long)Math.floor(valor_monetario/(50.00-INDICE));
valor_monetario= valor_monetario%50.00;
}
// termine de fazer para os outros valores...
dê uma olhada na API para conhecer a classe Math, e os métodos dela.
[]'s :thumbup: