pessoal eu to fazendo um problema de maratona e nesse mesmo eu encontro uma duvida como faço para colocar dois numeros para rodar nesse while.
o algoritmo pra um numero consegui fazer sem maiores problemas!
public class Pro1{
public static void main(String args[]){
int n,x;
int cp =0,ci = 0,ct =0;
String out = "";
x = 0;
out = JOptionPane.showInputDialog("Digite o numero");
n = Integer.parseInt(out);
System.out.println(n);
while(n!=1){
if(n==1){
break;
}else{
x = n % 2;
if(x==0){
n /= 2;
cp +=1;
System.out.println(n);
}else{
ci +=1;
n = ((3*n) + 1);
System.out.println(n);
}
}
}
ct = cp + ci + 1;
System.out.println("o total do ciclo e de: " + ct);
System.exit(0);
}
}
mas quando chega a ter dois numeros não sai conforme o esperado desse algoritmo acima.Então eu fiz um while normal com dois numeros e um outro while rotulado mas estes dois não rodaram legal.
while normal:
import javax.swing.*;
public class Teste001 {
public static void main(String args[]){
String a,b;
int x,y;
a = JOptionPane.showInputDialog("Digite o primeiro valor");
x = Integer.parseInt(a);
b = JOptionPane.showInputDialog("Digite o segundo valor");
y = Integer.parseInt(b);
while((x!=1)&&(y!=1)){
if(x==1){
break;
}else{
if(y==1){
break;
}else{
System.out.println("O numero b e diferente de 1");
}
System.out.println("O numero a e diferente de 1");
}
}
}
}
while rotulado
import javax.swing.*;
public class Teste002 {
public static void main(String args[]){
String a,b;
int x,y;
a = JOptionPane.showInputDialog("Digite o valor para a:");
x = Integer.parseInt(a);
b = JOptionPane.showInputDialog("Digite o valor para b:");
y = Integer.parseInt(b);
stop: {
while((x!=1)&&(y!=1)){
if(x==1){
break stop;
}else{
if(y==1){
break stop;
}else{
System.out.println("O numero b e diferente de 1");
}
System.out.println("O numero a e diferente de 1");
}
}
}
}
}
Eu não consegui interpretar isso legal. Alguem sabe como faço para ler dois numeros e o break não estragar tudo. tipo entrada: 1 e 10
while sai e não da resposta nenhuma. e quando os numeros são por exemplo 12 e 45 fica num loop infinito. alguma sugestão?
eu to fazendo este problema.
http://acm.uva.es/p/v1/100.html
por favor, gostaria de saber se estou no caminho certo. Mas não resolvam para mim… grato se ajudarem…
,