• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

shaqm

public static int[] lastTwo( int val )

3 mensagens neste tópico

Boas, tenho um método recursivo para fazer para a faculdade, já tenho o código e o método funciona para arrays ordenados, mas não para desordenados, eu a programar recusrsivo é sempre à "martelada" e depois vejo no debug o que está mal, mas com o windows7 dá um bug no eclipse e não consigo correr o debug, aqui vai o problema:

public static int[] lastTwo( int val )

que retorna um array de dois inteiros contendo os dois algarismos de maior peso na base decimal do valor val. Caso o valor absoluto de |val| seja menor que 10 retorna null.

o código que eu fiz:

package grupo1;

public class LastTwo {

public static int[] lastTwo( int val ){
	int []a=new int[2];
	if(Math.abs(val) < 10)return null;
	if(val < 100){
		if(val%10 < val/10){
			a[0]=val%10;
			a[1]=val/10;
			return a;
		}else {
			a[1]=val%10;
			a[0]=val/10;
			return a;
		}	
	}
	if(val%10 > lastTwo(val/10)[0]){
		if(val%10 > lastTwo(val/10)[1]){
			a[1]=val%10;
			a[0]=lastTwo(val/10)[1];
			return a;
		}else{
			a[0]=val%10;
			return a;
		}
	}else
		return a;
}
}

alguém me csg dar uma mãozinha?tks in advance :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já csg fazer o debug e encontrei o problema, mas não o csg resolver:

public static int[] lastTwo( int val ){
	int []a=new int[2];
	if(Math.abs(val) < 10)return null;
	if(val < 100){
		if(val%10 < val/10){//quando retorna a os valores do array ficam a zero!
			a[0]=val%10;
			a[1]=val/10;
			return a;
		}else {
			a[1]=val%10;
			a[0]=val/10;
			return a;
		}	
	}
	if(val%10 > lastTwo(val/10)[0]){
		if(val%10 > lastTwo(val/10)[1]){
			a[1]=val%10;
			a[0]=lastTwo(val/10)[1];
			return a;
		}else{
			a[0]=val%10;
			return a;
		}
	}else
		return a;
}

Sugestões?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim de repente creio que há situações onde o array não foi inicializado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora