Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión

 
Búsqueda Avanzada

15.707 Mensajes en 3.130 Temas- por 371 Usuarios - Último usuario: lasfirrot
Mayo 22, 2012, 08:59:01
Foro de Hispabyte.netProgramaciónCompeticiones de programación y algorítmicaOlimpiada Informática Española / IOITema: Problema OIE Segundo grado
Páginas: [1]   Ir Abajo
Imprimir
Autor Tema: Problema OIE Segundo grado  (Leído 987 veces)
0 Usuarios y 2 Visitantes están viendo este tema.
nachox
Novato
*
Mensajes: 18


Ver Perfil
« : Enero 30, 2011, 08:37:17 »


Hola, este problema me parece muy sencillo, pero no entiendo donde está mi error.
Código:
#include<cstdio>
#include<cmath>

using namespace std;

int main()
{
    int a,b,c,d,e,f,r1=0,r2=0,r3=0;
    while(scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f)!=EOF){
        int dis=pow((b+d*(f+e)),2)-4*(a-d)*(c-d*e*f);
        if(dis>0)++r1;
        else if(dis==0)++r2;
        else if(dis<0)++r3;
    }
    printf("%d %d %d\n",r1,r2,r3);
    return 0;
}

* segundogrado.pdf (22.9 KB - descargado 81 veces.)
En línea
HQH
Administrator
Miembro Imprescindible
*****
Mensajes: 1.813



Ver Perfil
« Respuesta #1 : Enero 31, 2011, 10:24:14 »

No recuerdo si la formula esta bien y no lo he probado, pero quizas puede que tengas problemas con la precision.

¿Y si algun resultado es por ejemplo 0.1? y tu al pasarlo a int pierdes esa precision y puede influir en el resultado...

Un saludo.

En línea
nachox
Novato
*
Mensajes: 18


Ver Perfil
« Respuesta #2 : Febrero 02, 2011, 05:35:55 »

El discriminante siempre será un número entero, el problema nos dice que todas las letras a, b, c, d ,e y f lo son. Para que sea una ecuación de segundo grado a!=d, si es que se da el caso que a==d, entonces estaríamos frente a una ecuación de primer grado.
Creo que me complique mucho, este es mi código aceptado:
Código:
#include<stdio.h>

int main()
{
    int a,b,c,d,e,f,na,nb,nc,dis,r1=0,r2=0,r3=0;
    while(scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f)!=EOF){
        na=a-d,nb=b+d*(f+e),nc=c-d*e*f;
        dis=nb*nb-4*na*nc;
        if(na!=0 && nb!=0 && nc!=0){
            if(dis>0)++r1;
            else if(dis==0)++r2;
            else if(dis<0)++r3;
        }
        else if(na!=0 && nb==0){
            if(nc!=0){
                if((na>0 && nc<0) || (na<0 && nc>0))++r1;
                else if((na>0 && nc>0) || (na<0 && nc<0))++r3;
            }
            else ++r2;
        }
        else if(na!=0 && nb!=0 && nc==0)++r1;
        else if(na==0 && nb!=0)++r2;
        else if(na==0 && nb==0 && nc!=0)++r3;
    }
    printf("%d %d %d\n",r1,r2,r3);
    return 0;
}
« Última modificación: Febrero 02, 2011, 05:40:59 por nachox » En línea
Páginas: [1]   Ir Arriba
Imprimir
Foro de Hispabyte.netProgramaciónCompeticiones de programación y algorítmicaOlimpiada Informática Española / IOITema: Problema OIE Segundo grado
Ir a:  


Tema diseñado por RJ-45 para Hispabyte.net basado en el
theme famouspadexx v.09 designed by Formado Comprido
Downloable here. My present to padexx.de