Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda de c++, urgente

Estas en el tema de ayuda de c++, urgente en el foro de C/C++ en Foros del Web. tengo problema con siguiente codigo, no me salen casos de prueba (ej: n=2, p=16; n=7, p= 4357186184021382204544), pero si pongo p como int salen casos ...
  #1 (permalink)  
Antiguo 08/04/2008, 16:49
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
ayuda de c++, urgente

tengo problema con siguiente codigo, no me salen casos de prueba (ej: n=2, p=16; n=7, p= 4357186184021382204544), pero si pongo p como int salen casos de intervalo puequeños como 2 16 , pero no sale para n=7, p= 4357186184021382204544, debe salir 1234. La condicion obligatoria consiste en que 1=< p <10 elevado a 101, 1=< k =<10 elevado a 9, 1<= n =< 200,
gracias de antemano


#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <conio.h>

int main()
{
int n;
double p;
unsigned int k;
scanf("%d %d",&n,&p);
if (n>=1 && n<=200 && p>=1 && p< pow(10, 101))
{
for (k=1; k<=1000000000; k++)
{
if (( pow ( k, n) == p))
{
printf("***%d",k);
//system("pause");
break;
}
}

}
getch();
return 0;
}
  #2 (permalink)  
Antiguo 08/04/2008, 20:08
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: ayuda de c++, urgente

El problema que yo veo es que estas usando numeros muy grandes para los tipos que defines. Ejemplo: la k es unsigned int, esto es puede contener valores entre 0 y 65,535 y tu defines el siguiente ciclo

Código:
for (k=1; k<=1000000000; k++)


Espero esto te sirva

Tipo: Tamaño en bits Rango
char: 8 -127 a 127
unsigned char: 8 0 a 255
signed char: 8 -127 a 127
int: 16 -32767 a 32767
unsigned int: 16 0 a 65535
signed int: 16 -32767 a 32767
short int: 16 -32767 a 32767
unsigned short int: 16 0 a 65535
signed short int: 16 -32767 a 32767
long int: 32 -2147483647 a 2147483647
signed long int: 32 -2147483647 a 2147483647
unsigned long int: 32 0 a 4294967295
float: 32 seis dígitos de precisión
double: 64 diez dígitos de precisión
long double: 64 diez dígitos de precisión
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #3 (permalink)  
Antiguo 09/04/2008, 11:02
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: ayuda de c++, urgente

lo he compropado todo y no sale, creo el problema esta en otra cosa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:04.