Excelente gracias por responder Blaster y rir3760 voy a probar los metódos que me proponieron
Saludos kutcher
Saludos kutcher
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: DarkMatrix en 23 Agosto 2014, 00:07 AM
Como el programa no tiene que distinguir entre mayusculas y minusculas, no importa como lo puse, fue para que se viera al invertir la palabra, la otra mitad no hace falta comprobarla ya que lo que hace el bucle es tomar la primera letra y cambiarla con la ultima, luego la segunda con la penultima, etc..., al llegar a la mitad ya se habran intercambiado todas las letras necesarias para saber si la palabra es palindroma, ya que si es asi la otra mitad sera igual a la ya intercambiada y la comparacion dara true, de lo contrario dara false.
Cita de: DarkMatrix en 22 Agosto 2014, 23:26 PM
el segundo es en esta linea "while (palabra[q] < p)", deberia ser "while (q < p)"
bool Palindromo(char palabra[40])
{
char copia[40];
int q = 0, p;
p = LongCad(palabra) - 1;
while (palabra[q] != '\0')
{
copia[q] = palabra[p];
q++, p--;
}
copia[q] = '\0';
if (strcmp(palabra, copia) == 0)
return true;
else
return false;
}
14 = 2 x 7
15 = 3 x 5
644 = 2² x 7 x 23
645 = 3 x 5 x 43
646 = 2 x 17 x 19.
a[i] = prome1(n, a);
int *fibo(int n, int *a);
int main(void)
{
int a[100] = {0};
int n = 0, i = 0;
printf("\n\t\tNUMEROS PARES POSITIVOS\n\t\t");
printf("\n\t\tIngrese el Numero de terminos de la serie:\n\t\t");
scanf("%d",&n);
printf("\n");
fibo(n, a);
for(i = 0; i < n; i++)
printf("\n\t[%d]", a[i]);
return 0;
}
int *fibo(int n, int *a)
{
int i;
printf("\n\tpresione una tecla para continuar");
for (i = 0; i < n; i++)
a[i] = (i + 1) * 2;
return a;
}
2, 5, 12,
3, 2, 25,
8, 1, 20
#include <iostream>
#include <cmath>
#include <vector>
#define MAXIMO 100000000
using namespace std;
bool es_primo[MAXIMO] = {0};
vector<int> primos;
void primo(int limite);
void cargarPrimos(int limite);
int main(void)
{
primo(MAXIMO);
//cargarPrimos(MAXIMO);
return 0;
}
void cargarPrimos(int limite)
{
primos.push_back(2);
primos.push_back(3);
for (int i = 5; i < limite; i++)
{
if (es_primo[i])
{
primos.push_back(i);
}
}
}
void primo(int limite)
{
int raiz = ceil(sqrt(limite));
for (int x = 1; x <= raiz; x++)
{
for (int y = 1; y <= raiz; y++)
{
int n = (4 * x * x) + (y * y);
if (n <= limite && (n % 12 == 1 || n % 12 == 5))
es_primo[n] = 1;
n = (3 * x * x) + (y * y);
if (n <= limite && n % 12 == 7)
es_primo[n] = 1;
n = (3 * x * x) - (y * y);
if (x > y && n <= limite && n % 12 == 11)
es_primo[n] = 1;
}
}
}