Jump to content

Ajuda numa função


darky_miguel
 Share

Recommended Posts

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

ja me safei 😄 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]);
}
}
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.