Ir ao conteúdo
  • Cadastre-se
CurtAlloy6823

Problema Numero Armstrong

Recommended Posts

E Aí Galera !

Estou implementando um programa em que o usuário entra com um número e o programa diz se é ou não um número de armstrong. A princípio eu fiz o programa partindo do princípio que o número possui três dígitos:

void armstrong(int num);

main(){
int num;
printf("Entre com o valor:");
scanf("%d",&num);
armstrong(num);
getch();
}

void armstrong(int num){
int *a, *b, *c, *arm;
a=(int *)malloc(sizeof(int));
b=(int *)malloc(sizeof(int));
c=(int *)malloc(sizeof(int));
arm=(int *)malloc(sizeof(int));
*a=num/100;
*b=(num - *a*100)/10;
*c=(num -(*a*100)-(*b*10));
*arm=pow(*a,3) + pow(*b,3) + pow(*c,3);
if(num==*arm)
printf("%d e um numero de Armstrong!",num);
else
printf("%d nao e um numero de Armstrong",num);
}

Mas eu queria fazer uma outra função que recebesse o número inteiro como entrada e retornasse o número de dígitos que compoe esse algarismo, só que estou encontrando dificuldades para fazê-la.

Alguem pode me dar uma luz de como fazer essa função ?

Agradeço desde já !

P.S. - Eu estou fazendo tudo apenas usando ponteiros

Compartilhar este post


Link para o post
Compartilhar em outros sites

Divide o número por 100, se o resultado for maior que 1 o número tinha 3 dígitos..pode dividir por 1000 e se o resultado for maior que 1..4 dígitos.

Ou pode ainda comparar, se o número for maior que 99 e menor/igual a 999, tem 3 dígitos..

]99,999] - 3 dígitos

]999, 9999] - 4 dígitos

enfim...

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×