milton Posted October 20, 2007 at 07:03 PM Report Share #141633 Posted October 20, 2007 at 07:03 PM hmm... tou aki com um prob a resolver um problema simples, o problema do programa que escrevi é que ta sempre a descartar os numeros da variavel resto, isso nao é nenhum problema pk é o que é suposto fazer... eu gostaria de saber se ha alguma maneira de nao reinicializar a variavel.. ou ir acumulando(sem os somar ou fazer outra qualquer operaçao matematica) os numeros que vao parar á variavel /*5. ** Pretende-se escrever um programa em Java que leia do teclado uma quantidade decimal, inteira não negativa, e que a escreva no monitor, pela ordem inversa dos seus algarismos. A entrada de dados deve ser organizada como se indica a seguir. Valor numérico inteiro? ... A saída do resultado deve obedecer ao formato seguinte. quantidade inicial -> quantidade final*/ import static pt.ua.prog.WIO.*; public class p2 { public static void main(String[] args) { int decimal, quociente, resto; do { decimal=readInt("Valor numérico inteiro: "); }while(decimal<=0); resto=decimal%10; quociente=decimal/10; do { resto=quociente%10; quociente=quociente/10; }while(quociente!=0); writeString("quantidade inicial é "+decimal+" -> quantidade final é "+resto); } } P.S.: eu consigo fazer o prog se souber exactamente quantos numeros vao ser introduzidos... mas obvio que nao é esse objectivo.. qualquer ideia será bem vinda 😉 Link to comment Share on other sites More sharing options...
Saco Posted October 28, 2007 at 01:11 AM Report Share #143410 Posted October 28, 2007 at 01:11 AM Experimenta assim: import static pt.ua.prog.WIO.*; public class p2 { public static void main(String[] args) { int decimal, quociente, resto=0; do { decimal=readInt("Valor numérico inteiro: "); }while(decimal<=0); quociente = decimal; do { resto*=10; resto+=quociente%10; quociente=quociente/10; }while(quociente!=0); writeString("quantidade inicial é "+decimal+" -> quantidade final é "+resto); } } Link to comment Share on other sites More sharing options...
milton Posted October 28, 2007 at 03:56 PM Author Report Share #143560 Posted October 28, 2007 at 03:56 PM ahhhhhhhhh... 😄 sou um burro... muito obrigado 😛 (era tão simples e apenas uma questao matematica tsk) mais uma vez obrigado 😛 Link to comment Share on other sites More sharing options...
Gurzi Posted October 29, 2007 at 12:12 PM Report Share #143738 Posted October 29, 2007 at 12:12 PM Para quem não tem essa library disponível, deixo aqui um source compatível para quem quiser experimentar import java.io.*; public class teste { public static void main(String[] args) throws IOException { int decimal, quociente, resto=0; BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); do { System.out.println("Introduza um numero decimal Positivo"); decimal=Integer.parseInt(input.readLine()); }while(decimal<=0); quociente = decimal; do { resto*=10; resto+=quociente%10; quociente=quociente/10; }while(quociente!=0); System.out.println("quantidade inicial é "+decimal+" -> quantidade final é "+resto); } } Já agora, alguem daqui tem uma explicação matemática para isto?? está me a custar perceber o segundo ciclo 😉 Link to comment Share on other sites More sharing options...
badas Posted October 31, 2007 at 01:49 PM Report Share #144220 Posted October 31, 2007 at 01:49 PM 1. resto*=10; 2. resto+=quociente%10; 3. quociente=quociente/10; Basicamente está a percorrer cada um dos algarismos, começando pelo mais à direita. Por exemplo, o numero 123: resto fica com 3 (resto da divisão inteira de 123 por 10) e retira o 3 do numero dividindo-o por 10. Na segunda iteração multiplica o resto e fica com 30, adiciona ao resto o 2 (fica 32) , divide o quociente que fica só com 1. No ultimo multiplica de novo o resto (320), soma-lhe 1 e fica com o quociente a zero e acaba. Ficaste com 321 no resto. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now