Algoritmo de decomposição numérica

29/07/2021

0

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+"")
	}
}
Carlos Silva

Carlos Silva

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar