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

suzy

[C] Ajuda: Codificar números

2 mensagens neste tópico

:cheesygrin:

desemvolver uma funcao que codifique um dado numero inteiro com n digitos, a seguinte forma :nono:

cada digito do numero deve ser convertido na soma de si proprio com o digito a sua direita, a não ser que o resultado seja superior ou igual a 10.

por exemplo o numero 17352 condifcado transforma-se em 87872 ( 8=1+7; 7 porque 7+3=10;8 porque 5+3; 7 porque 5+2; 2 porque nao ha nenhum digito para somar a sua diretia

:shocking:tou farta de tentar

como faço isto???? :eek: nao possousar vectores :rant_01: é o que diz no problema, ajuda :wallbash:thanks people :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda não deste recursividade pois não?

O que tu queres aqui é conseguir retirar 1 digito de cada vez ao número para poder manipular o número. Consegues isso dividindo por 10 e capturando o resto.

Ex:

resto=17352%10

resto iria ficar com o número 2. a passagem seguinte seria dizer

numero=numero/10

o digito que te interessava já está guardado em resto.

Sabendo isto só pecisas de fazer um ciclo que corra o número sempre retirando o resto da divisão do número por 10.

Verificas se a soma do resto actual e do resto anterior (vais ter de ter uma variavel que te guarde esse valor) é maior que 9... se for atribuis a uma variavel (por exemplo "numero_recalculado") a soma de si própria mais o resto vezes um contador que será cada vez maior.

Ex:

numero_recalculado = numero_recalculado + resto * cont

se for menor

numero_recalculado = numero_recalculado + (resto+resto_anterior) * cont

O contador convêm ser incializado a 10 e no fim de cada ciclo digas que cont=cont*10 para que cada vez que somes ao número ele vá adiconando tipo: 2 + 70 = 72, no próximo caso em que cont = 100 já faça 72 + 800 = 872 construindo assim o número direitinho, sem multiplicar o contador por 10 nunca somarias número maiores que 90 destruindo assim toda a codificação.

Precisas agora de criar o algoritmo porque, vão surgir algumas duvidas que só dependem da forma como queres trabalhar com o ciclo.

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