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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
31  Programación / Programación C/C++ / Re: Retos de programación C/C++ en: 16 Agosto 2014, 16:26 pm
Encuentra los primeros cuatro números enteros consecutivos para tener cuatro factores primos distintos. ¿Cuál es el primero de estos números?

Tal vez no sea la solución mas rápida pero ira mejorando:

Código
  1. #include <stdio.h>
  2.  
  3. int factor_primo(int n)
  4. {
  5.    int cant = 0, i;
  6.    for( i = 2; n != 1; i++)
  7.        if(n % i == 0)
  8.        {
  9.            cant++;
  10.            do
  11.                n = n / i;
  12.            while(n % i == 0);
  13.        }
  14.    return cant;
  15. }
  16.  
  17. int main(void)
  18. {
  19.    int n = 0;
  20.    int i, c = 0;
  21.  
  22.    for(i = 100000 ;; i++)
  23.    {
  24.       (factor_primo(i) == 4) ? c++ : (c = 0);
  25.  
  26.        if (c == 4)
  27.        {
  28.            n = i - 3;
  29.            break;
  30.        }
  31.    }
  32.    for(i = 0; i < 4; i++)
  33.       printf("%d\n", n + i);
  34.  
  35.    return 0;
  36. }
  37.  
  38.  

Seria interesante que publiquen los códigos con los cuales resuelven el problema
32  Programación / Programación C/C++ / Re: Retos de programación C/C++ en: 16 Agosto 2014, 05:51 am
Hola kutcher me parece excelente la iniciativa este tipo de actividades es lo que hacia falta a este subforo, en cuanto al primer reto lo veo difícil pero de igual manera estoy en ello  ;D

Saludos
33  Programación / Programación C/C++ / Re: Matriz con puntos de silla (lenguaje C) en: 12 Agosto 2014, 20:31 pm
  Uno de los ingresos incorrectos:
  Ingreso…: -4 (incorrecto)
  Ingreso…: aa (incorrecto)
  Ingreso…: 11 (incorrecto)
  Ingreso…: -4 (correcto)

En las funciones tanto VerificaCol() y VerificaFil() la variable i la debes inicializar a cero dentro del for:

Código
  1. for(i = 0; charCol[i]; i++)
  2.  if (!isdigit(charCol[i]))
  3.    ok++;

Saludos
34  Programación / Programación C/C++ / Re: Problema simple con programa números primos en: 10 Agosto 2014, 05:26 am
Otra forma de reducir exponencialmente el número de iteraciónes es la siguiente:

Código
  1. for (i = 3; i * i <= valor; i += 2)


Saludos   
35  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 8 Agosto 2014, 16:14 pm
Nueva versión la deje de la siguiente manera:

Código
  1. char s1[] = " 1234 78   12345 321  9876 5678 ";
  2. int pos = 0;
  3.  
  4. for (i = 0; s1[ i ] != '\0'; i += pos + 1)
  5.   if ((pos = strcspn(s1 + i, " ")) == 4 && strchr(" \0", s1[i+pos]))
  6.      memset( s1 + i, '*', 4 ), cont ++;
  7.  
  8. printf("\n Cadena reemplazada.: %s\n", s1);
  9. printf("\n Se han sustituido un total de %d palabras.\n\n", cont);

No me gustaba lo de restarle uno  ;)

EDITO:

Creo es mejor conservar la versión anterior, ya que encontré que esta es
propensa a hacer comparaciones fuera del buffer al pasarle una cadena como esta
"2510 2"

REEDITÓ:

Ahora va perfecto

Saludos
36  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 7 Agosto 2014, 22:55 pm
Sólo que el else-if está exclusivamente para el la posible primera palabra y podría ser más propio:

Es cierto leosansan no me había fijado, gracias por la observación  ;)

Saludos
37  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 7 Agosto 2014, 21:31 pm
Otra alternativa consiste en utilizar la función strcspn para encontrar el siguiente carácter igual a ' ' o '\0' y la función memset para imprimir los cuatro espacios (los prototipos de ambas en <string.h>).

Me gusto la idea de rir3760 la implemente de esta manera:

Código
  1. char s1[] = " 1234 78   12345 321  9876 5678 ";
  2. int pos = 0;
  3.  
  4. for (i = 0; s1[ i ] != '\0'; i += pos + 1)
  5.   if (((pos = strcspn( s1 + i, " " )) == 4 &&
  6.       s1[ i - 1 ] == ' ') || (s1[4] == ' ' && i == 0))
  7.     memset( s1 + i, '*', 4 ), cont++;
  8.  
  9. printf("\n Cadena reemplazada.: %s\n", s1);
  10. printf("\n Se han sustituido un total de %d palabras.\n\n", cont);
  11.  

Saludos
38  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 7 Agosto 2014, 16:51 pm
Y con una línea más a cambio de no usar función alguna:

Va bien pero no tiene en cuenta si la ultima palabra es de cuatro caracteres y no tiene un espacio entre el ultimo carácter y el carácter nulo

Saludos
39  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 7 Agosto 2014, 04:28 am
Está muy bien pero a mí me falla, y ya lo digo con miedo a equivocarme, porque si el primer espacio es un espace  y la primera cadena es de cuatro no la cambia por asteriscos:

Inconveniente solventado ahora va de maravilla edite el código de arriba 

Saludos
40  Programación / Programación C/C++ / Re: [Sugerencia] Concursillo C++ en: 6 Agosto 2014, 21:07 pm
Me gusta la idea, pero no estoy de acuerdo en lo de usar solo c++

Saludos
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines