Algoritmo de decomposição numérica

29/07/2021

10

Pessoal, estou com dificuldade para resolver um exercício, gostaria da ajuda de vcs!! :)
Segue:
Escreva um algoritmo para realizar a decomposição numérica de um número, utilizando por exemplo: 37843.
Para decompor um número, é preciso escrevê-lo como a soma das ordens dos algarismos, ou seja, a decomposição do número 1523 é igual a: 1000 + 500 + 20 + 3

Fiz da seguinte forma abaixo, mas sinto que tá meio na gambiarra.... e porque também já tá com o número pré-definido, se eu não soubesse que o número é esse (37843) e pedisse pro usuário digitar o número que ele quisesse, como ficaria?

Desde já, agradeço!


programa
{
	
	funcao inicio()
	{
		inteiro unidade, dezena, centena, u_milhar, d_milhar, numero 

		numero = 37843
		unidade = ((numero/1)%10)*1
		dezena = ((numero/10)%10)*10
		centena = ((numero/100)%10)*100
		u_milhar = ((numero/1000)%10)*1000
		d_milhar = ((numero/10000)%10)*1000

		escreva(numero+" Decomposto e:\n")
		escreva(d_milhar+"+")
		escreva(u_milhar+"+")
		escreva(centena+"+")
		escreva(dezena+"+")
		escreva(unidade+"")
	}
}
Responder

Posts

09/08/2021

Yuri Aguiar

Opa, tudo bom meu amigo?
Acompanha comigo o raciocínio... mas antes de tudo tenha em mente que existe outras maneiras bem mais simplificadas de resolver este problema, mas você está no caminho.

programa {
    funcao inicio() {

        inteiro unidade, dezena, centena, u_milhar, d_milhar, numero

        leia(numero)
 
        unidade = ((numero/1)%10)*1
        dezena = ((numero/10)%10)*10
        centena = ((numero/100)%10)*100
        u_milhar = ((numero/1000)%10)*1000
        d_milhar = ((numero/10000)%10)*1000
 
        escreva(numero + " Decomposto e:\\n")
        escreva(d_milhar+"+")
        escreva(u_milhar+"+")
        escreva(centena+"+")
        escreva(dezena+"+")
        escreva(unidade+"")
    }
}


Como você deseja apenas trocar o valor pré-definido por algum que o usuário digite, basta colocar um 'leia()' que cada vez que a pessoa digitar um valor, ele será alocado na variável número. Por exemplo:

inteiro n
leia (n)

Suponhamos que a pessoa digite 10, a variável 'n' passará a possuir esse valor.
Espero que eu tenha sido claro.
Abraço.

Ps.: continue seus estudos e não deixe de praticar, tentando sempre resolver os exercícios de diferentes abordagens, assim você trabalha muito bem sua lógica de programação.

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar