Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

darky_miguel

Ajuda numa função

Mensagens Recomendadas

darky_miguel

boas , tenho que programar uma função que apague um digito a um numero

public static int apagardigito (int n,int pos)

o n é o numero e o pos  é a posição que quero apagar

 

exemplo

o retorno disto apagardigito (9863,3)  deve ser 983 mas ainda não sei muito bem como hei de fazer alguém me pode ajudar

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vasco16

boas , tenho que programar uma função que apague um digito a um numero

public static int apagardigito (int n,int pos)

o n é o numero e o pos  é a posição que quero apagar

 

exemplo

o retorno disto apagardigito (9863,3)  deve ser 983 mas ainda não sei muito bem como hei de fazer alguém me pode ajudar

Estas a fazer uma função que irá receber um inteiro e a enviar um float/double (9863,3).

Mas segundo percebi queres algo como isto:

enviar o numero 987;

apagar a posicao 2;

entao:

Podes começar por ver a API do Java:

Mais concretamente, esta classe (por exemplo):

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Integer.html

E depois é pensar.. podes passar esse integer para uma string, percorre-la com um for e se a posicao dada for igual ao indice+1 entao nao guardas essa posição.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
darky_miguel

ja me safei :D um bocado grande mas foi assim que fiz

static int powers[] = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000};
private static int apagardigito(int n, int pos) {
	return (n / powers[pos]) * powers[pos - 1] + (n % powers[pos - 1]);
}
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KarlMTC

Eu preferia fazer um ArrayList<Integer> onde fosses add_icionando os %10 do nº até que o resultado fosse 0. Depois era so juntar os nºs tirando o da 3ª posiçao da coleçao. A tua soluçao so vai resultar até certo numero.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KarlMTC

Crias uma coleçao onde vais guardando os dígitos (pensando melhor em vez de ArrayList a melhor era um Stack, por a forma de extraer os numeros). Para ir adicionando os dígitos à coleçao tens que recorrer o numero, e para isso vais adicionando o %10 e depois divides para eliminar esse digito do número em questao (Exemplo: 356 % 10 = 6, 356 / 10 = 35).

Repetes o processo até já nao teres digitos no número (até que seja igual a 0). Depois tens que voltar a formar esse número recorrendo a coleçao e multiplicando o digito por a 10^indice. (Exemplo: 356...  3 x 10^2 + 5 x 10^1 + 6 x 10^0). E para finalizar, tens que incluir uma comprovaçao de que o nº a inserir nao seja o indice que passas ao método.

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.