Subtração

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.

public static void main(String[] args) 
{            
    int[] array = {100, 200, 100, 50, 30, 100, 30}; 
    int valorResultado = 500;        
    for( int i = 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?

1 curtida

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

1 curtida

“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.

É isso ai mesmo, você conseguiu entender a logica que desejo!

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.

É 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!

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?

Então veja o teste de mesa:

TOTAL     ARRAY     SOBRA
500    -   100   =    400
400    -   200   =    200
200    -   100   =    100
100    -    50   =     50
 50    -    30   =     20
 20    -   100   =    -80
-80    -    30   =   -110

Realmente não consigo entender como o resultado esperado pode ser 20, alguma informação ficou faltando…

1 curtida

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 };
	int valorResultado = 500;
			
	for (int i = 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 :smiley:

1 curtida

O 20 é valor que vai ate o Zero, e o 80 é a sobra do 100!
100 - 20 = 80

Esse exercício tá mais parecendo uma pegadinha.
As coisas precisam ser mais objetivas.
1.Entrada
2.Processamento
3.Saida

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 :grin:

Esse código atendeu as minhas necessidades, muito obrigado a todos!

1 curtida