Estou tentando resolver uma atividade, se alguém poder ajudar ficarei grato.
Exercício:
Preciso fazer uma subtração, que vai de um valor “Vou da neste ex. 500” ate o 0, dê a sobra da subtração
Exemplo: o resultado é para ser mostrado assim:
Valor calculado = 100
Valor calculado = 200
Valor calculado = 100
Valor calculado = 50
Valor calculado = 30
Valor calculado = 20
Sobra do valor calculado = 80
Estou os calculo assim, mas não é o resultado que desejo.
publicstaticvoidmain(String[]args){int[]array={100,200,100,50,30,100,30};intvalorResultado=500;for(inti=0;i<array.length;i++){if(valorResultado>=0){valorResultado-=array[i];System.out.println("Valor calculado = "+array[i]);}else{System.out.println("Sobra do valor calculado = "+array[i]);}}}
Como é pra ser calculado esse “Valor calculado”?
Porque a sobra é 80 no exemplo acima?
FacaNaCaveira1 like
Fala ai @ismaelmartinsds, acho que consegui entender o que é que você deseja fazer, veja se eh essa a logica?
Você deseja pegar uma valor qualquer atribuído a valorResultado e ir subtraindo sucessivamente dos valores que estão no Array e quando chegar a zero voce deseja mostrar a soma dos valores que restaram, ou seja, aqueles que não fizeram parte das sucessivas subtrações. É isso?
Abraços
Max
ismaelmartinsds
“Valor calculado” é o valor que esta dentro do Array int[] array = {100, 200, 100, 50, 30, 100, 30};
e o 80 sobra por que é a subtração do que restou, 20 - 100.
ismaelmartinsds
É isso ai mesmo, você conseguiu entender a logica que desejo!
K.Schaeffer
Altere no seu else a variável concatenada para a valorResultado, assim:
else{
System.out.println("Sobra do valor calculado = "+valorResultado);}
É nessa variável que você armazenou a sobra, então é ela que tem que ser concatenada no else. Apresentando o valor do Array ele vai retornar 30 pois ele está mostrando o valor armazenado no index i do seu array, que como está na última execução do for, é 30.
ismaelmartinsds
É quase isso, como saiu o resultado:
Valor calculado = 100
Valor calculado = 200
Valor calculado = 100
Valor calculado = 50
Valor calculado = 30
Valor calculado = 100
Sobra do valor calculado = -80
e estou precisando que saia assim:
Valor calculado = 100
Valor calculado = 200
Valor calculado = 100
Valor calculado = 50
Valor calculado = 30
Valor calculado = 20
Sobra do valor calculado = 80
no lugar do 100 tem que ser o 20, que é o valor que falta para 0, e o 80 positivo que foi o que sobrou!
staroski1 like
OK
Você disse que esses valores serão subtraídos de 500, certo?
E o seu array tem os elementos {100, 200, 100, 50, 30, 100, 30}, certo?
Realmente não consigo entender como o resultado esperado pode ser 20, alguma informação ficou faltando…
E
erika.marchi1 like
Olá @ismaelmartinsds! Entendi que você precisava executar diversas subtrações até chegar no zero. Quando chegar no zero, o valor calculado passa a ser o valor que falta para dar zero e, além disso, precisa mostrar a sobra da conta.desse valor. Fiz o seguinte:
public static void main(String[] args) {
int[]array={100,200,100,50,30,100,30};intvalorResultado=500;for(inti=0;i<array.length;i++){if(valorResultado-array[i]>=0){valorResultado-=array[i];System.out.println("Valor calculado = "+array[i]);}else{System.out.println("Valor calculado = "+valorResultado);valorResultado=array[i]-valorResultado;break;}}System.out.println("Sobra do valor calculado = "+valorResultado);}
Veja se te ajuda
ismaelmartinsds
O 20 é valor que vai ate o Zero, e o 80 é a sobra do 100!
100 - 20 = 80
j-menezes
Esse exercício tá mais parecendo uma pegadinha.
As coisas precisam ser mais objetivas.
1.Entrada
2.Processamento
3.Saida
E
erika.marchi
Essa é a saída do código que eu fiz:
Se você mudar o valorResultado para 150, a saída será:
Valor calculado = 50
Valor calculado = 50
Sobra do valor calculado = 150
É essa saída que você está esperando? Senão, qual seria?
Talvez um outro exemplo me ajude a entender o problema
ismaelmartinsds1 like
Esse código atendeu as minhas necessidades, muito obrigado a todos!