Divisão por subtração

5 respostas
van_bommel

Ola galera , estou com duvidas nesse exercicio , ele é bem simples mais não sei porque não estou conseguindo fazer;/

/*
17) Desenvolva classe e métodos, necessários para receber 2 números inteiros e positivos e apresentar o quociente e
o resto da divisão do primeiro pelo segundo, porém, este cálculo sendo realizado, obrigatoriamente, através de
subtrações sucessivas.
Sendo: 9 ÷ 2  9 ? 2 = 7 (q = 1)
resto 7  7 ? 2 = 5 (q = 2)
resto 5  5 ? 2 = 3 (q = 3)
resto 3  3 ? 2 = 1 (q = 4)
resto 1  1 ? 2 = -1 que é menor ou igual à zero, então quociente (q) = 4 e resto = 1
Exemplo: Divisão Entradas: 9 e 2
Saídas: Quociente = 4 e Resto = 1
*/

import javax.swing.*;

public class Exer4 {

public static void  main  ( String args [ ] ){


      String aux = JOptionPane.showInputDialog ( null, "insira o 1 numero " );
      int num1  = Integer.parseInt ( aux ) ;
      String aux2 = JOptionPane.showInputDialog ( null, "insira o  2 numero " );
      int num2  = Integer.parseInt ( aux ) ;
      
      String resp = " " ;
      int q = 0 ;
      int resto =num1;
      
      while (  resto - num2 >= 0 )  {
    
      resp  = resp + " o resto = "+ ( resto- num2 );
   
      q ++ ;
      resp = resp + " quociente = " + q ; 
      
      } 




      System.out.println (  resp );









}




}

ps : explicação …

5 Respostas

T

Hum… onde você está mexendo na variável "resto"? Do jeito que está, vai ficar em loop infinito.

van_bommel

eu sei, como eu faço para armazenar o resto …sem fazer loop infinito?

Andre_Brito

Mudando o valor dele dentro da estrutura de repetição. É aqui que entra a lógica do problema :slight_smile:

van_bommel
public class Divisor {

  public static String  getDivisor (int num1 , int num2){
     int resto = num1;
     int q = 0;
     String saida = "";
     while ( resto - num2 >=1 ) {
        resto = resto - num2 ;
        saida = " Divisor " + num1 + "/" + "Dividendo " + num2 ;
        saida =  " Resto = " + resto + "Quonciente = " + q  ;
        
     
     }
        
         return saida ; 
  
  
  }

}

onde to errando ?

Stormqueen1990

Pelo que dá pra ver vc não tá guardando o quociente em lugar nenhum.
E se a idéia é colocar na variável saída um texto, vc deveria concatenar os dois conteúdos. Desse modo que está escrito o segundo conteúdo vai sobrescrever o primeiro.

Deveria ser algo mais ou menos assim:

public class Divisor {   
  
  public static String  getDivisor (int num1 , int num2){   
     int resto = num1;   
     int q = 0;   
     String saida = "";   
     while ( resto - num2 >=1 ) {   
        q++;
        resto = resto - num2 ;   
        saida = " Divisor " + num1 + "/" + "Dividendo " + num2 ;   
        saida = saida +  " Resto = " + resto + "Quonciente = " + q  ;   
           
       
     }   
           
         return saida ;   
     
     
  }   
  
}
Criado 3 de agosto de 2009
Ultima resposta 4 de ago. de 2009
Respostas 5
Participantes 4