elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Numero feliz en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Numero feliz en C  (Leído 7,601 veces)
estudiante_1

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Numero feliz en C
« en: 8 Junio 2016, 12:30 pm »

Hola, tengo que hacer un programa que me diga si un número es feliz. No sé como implementarlo. Lo que he hecho es primero que me diga las cifras que tiene el número ingresado y que me diga las cifras que son.
 Aquí está la definición de número feliz: https://es.wikipedia.org/wiki/Número_feliz
    esto es lo que tengo de momento:
   
Código:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define max 100



    int cifras(int n,int i){
        i=1;
    while(n/10>0){
        n=n/10;
        i++;

    }
    return(i);
    }
    void digito(int v[],int n,int digitos,int c ){

       for(c=0;c<digitos;c++){
        v[c]=n%10;
        n=n/10;
       }

    }


       int main(Void){
       int n;
       int i=1;
       scanf("%d",&n);
       int v[max];
       int digitos=cifras(n,i);
    printf("Tiene %d cifras\n",digitos);
    int c;
   digito(v,n,digitos,c);
   for(c=0;c<digitos;c++){
    printf("%d\n",v[c]);
   }

















       system("pause");
       return(0);

       }
Gracias.
 


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.665


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Numero feliz en C
« Respuesta #1 en: 8 Junio 2016, 14:56 pm »

Para facilitar el conteo de digitos puedes leer una cadena directamente  asi tambien es mas facil el acceso a los dígitos individuales.

Saludos


En línea

Publickey: 03b8b1bf1830c8d407870001ec0e7badb7a6632255fb0051284b14f53791bd6087
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
fary
Moderador Global
***
Conectado Conectado

Mensajes: 1.031



Ver Perfil WWW
Re: Numero feliz en C
« Respuesta #2 en: 8 Junio 2016, 16:19 pm »

Código
  1. // Programado por fary
  2.  
  3.  
  4. #include <stdio.h>
  5. #include <math.h>
  6.  
  7. int DigitosNumeros(int Numero); // Separa el numero en digitos
  8.  
  9. int Numeros[10] = {0};
  10.  
  11. int main()
  12. {
  13.    int Numero = 0;
  14.  
  15.    printf("Introduce tu numero: ");
  16.    scanf("%i", &Numero);
  17.  
  18.    if (Numero < 0)
  19.    {
  20.        printf("Introduce un numero valido.\n");
  21.    }else{
  22.        int i = 0;
  23.        int suma = 0;
  24.        int z = 0;
  25.  
  26.        while (z < 20)
  27.        {
  28.            DigitosNumeros(Numero);
  29.  
  30.            suma = 0;
  31.            for (i = 0; i < 10; i++)
  32.            {
  33.                suma = suma + Numeros[i];
  34.            }
  35.  
  36.            if (suma == 1)
  37.            {
  38.                printf("Numero Feliz :)\n");
  39.                return 0;
  40.            }
  41.  
  42.            suma = 0;
  43.            for (i = 0; i < 10; i++)
  44.            {
  45.                suma = suma + pow(Numeros[i], 2);
  46.            }
  47.  
  48.            Numero = suma;
  49.            memset(Numeros,0,40);
  50.            z++;
  51.        }
  52.        printf("El numero NO es feliz :(\n");
  53.    }
  54.    return 0;
  55. }
  56.  
  57. int DigitosNumeros(int Numero)
  58. {
  59.    int i = 0;
  60.    int n;
  61.  
  62.    while(Numero > 0)
  63.    {
  64.        Numeros[i]  = Numero % 10;
  65.        Numero = Numero / 10;
  66.        i++;
  67.    }
  68.    return 0;
  69. }
  70.  


 :P
En línea

Un byte a la izquierda.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines