Saida do array(duplicato)

3 respostas
G

pessoal eu fiz este codigo abaixo para mostrar o maior ciclo de tamanho de um numero dentro de um intervalo especificado. São quatro conjuntos de intervalos.
1 10
100 200
201 210
900 1000

a saida esperada era:
20
125
89
174

mas esta com valores duplicatos no terceiro conjunto.
o algoritmo é esse:

import javax.swing.*;

public class Teste008 {
	public static void main(String args[]){
		
		// Bloco contendo os intervalos de numeros;
		int con[][] = new int[4][1];
		// Variaveis para entradas/saidas dos intervalos
		String in,out;
		// vetores do array e regras;
		int x,y,maior = 0,aux = 0,n1 =0,t=0,n2 = 0;
		int cp = 0,ci = 0, ct = 0;
		
		
		
		// for para colocar valores de entrada;
		for(int i=0; i<con.length;i++){
			in = JOptionPane.showInputDialog("Digite as entradas dos intervalos");
			x = Integer.parseInt(in);
			if((x>0)&&(x<1000000)){
			con[i][0]=x;
				
			}else{
			break;
			} 
			
			// For para colocar valores de saida;
			for(int j=0; j< con[i].length;j++){
				out = JOptionPane.showInputDialog("Digite as saidas dos intervalos");
				y = Integer.parseInt(out);
				if((y>0)&&(y<1000000)){
				con[0][j] = y;
				
				}else{
					break;
				}
			
			for(int r = x; r<=y; r++){
				if(r==1)
			continue;
			n1 = r;
			while(n1!=1){
				t = n1 % 2;
				if(t==0){
					n1 /= 2;
					cp += 1;
				}else{
					n1 = ((3 * n1) + 1);
					ci += 1;
				}
			}
			ct = cp + ci + 1;
			n2 = ct;
			if(n2> maior){
				aux = n2;
				maior = aux;
			}
			
		  
			cp = ci = ct = aux = n2 =0;
			}
			System.out.println(x +" "+ y +" "+ maior);
			
             }
			
		}
		System.exit(0);	
		
	}
}

alguem sabe o porque disso e qual seria a resolução para isso?
grato

3 Respostas

R

Daí,

Desculpa a ignorância, mas o que seria um ciclo de tamanho em um intervalo ?

[]s

D

cara pra fala a verdade não entendi a questão, dá pra fazer a gentileza de detalhar e explicar o problema pra nós ajudarmos você?

G

Eu tenho que fazer uma entrada de quatro inserção de intervalo.
assim:
1 10
100 200
201 210
900 1000

e a saida teria que ser assim

1 10 20
100 200 125
201 210 89
900 1000 174

Mas ta saindo errado no 201 e 210… ele ta repetindo o valor do 100 e 200
não sei resolver…

Criado 11 de março de 2007
Ultima resposta 14 de mar. de 2007
Respostas 3
Participantes 3