Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: vaness182 en 3 Noviembre 2015, 05:22 am



Título: ayuda con programacion python multiplos
Publicado por: vaness182 en 3 Noviembre 2015, 05:22 am
Ayuda please con este ejercicio que no se como cumplir la condicion del multiplo mas cercano:


###

Cree un programa en Python 3.4 que solicite al usuario ingresar un número. Luego genere como segundo número el múltiplo de cinco más cercano al primer número ingresado (si el primer número es múltiplo de cinco busque el siguiente múltiplo de cinco), y finalmente genere como tercer número el múltiplo de siete más cercano al segundo número (si el segundo número es múltiplo de siete busque el siguiente múltiplo de siete). Evalúe si esas tres longitudes pueden formar un triángulo, en caso positivo calcule y muestre el área; en caso negativo, muestre el texto "error".

El programa debe mostrar como resultado exclusivamente el área del triángulo o el texto "error" (sin comilllas), no debe contener letras ni enunciados que lo acompañen.

Ejemplos: Si el usuario ingresa el número 1, el programa debe mostrar error; si el usuario ingresa el número 4, el programa debe mostrar 9.797958971132712

###
lo que he pensado es :

####

Código
  1.  
  2. n1 = int(input())
  3. n2 = n1+1
  4. n3 = n2+1
  5. p=0
  6. a=0
  7.  
  8. if(n2%5!=0):
  9.    n2 = n2+1
  10.    if(n2%5!=0):
  11.        n2 = n2+1
  12.        if(n2%5!=0):
  13.            n2 = n2+1
  14.  
  15. if(n3%7!=0):
  16.    n3 = n3+1
  17.    if(n3%7!=0):
  18.        n3 = n3+1
  19.        if(n3%7!=0):
  20.            n3 = n3+1
  21.            if(n3%7!=0):
  22.                n3 = n3+1
  23.  
  24. if(n2==n3):
  25.    n3=n3+7
  26.  
  27. ## comprobar si se puede formar un triangulo con esas medidas ##
  28.  
  29. if ((n1+n2 > n3) and (n1+n3 > n2) and (n2 + n3 > n1)):
  30.  
  31.    ##### area triangulo ##
  32.  
  33.    #semi perimetro#
  34.  
  35.    p=(n1+n2+n3)/2
  36.  
  37.    #area formula Heron#
  38.  
  39.    a=(p * (p-n1) * (p-n2) * (p-n3))**(1/2)
  40.    print(a)
  41.  
  42.  
  43. else:
  44.    print("error")
  45.  
  46.  
  47.  


Título: Re: ayuda con programacion python multiplos
Publicado por: Davot94 en 8 Noviembre 2015, 23:49 pm
Hola, asi tengo yo resuelto este ejercicio

n1 = int(input())
n2 = n1+1
Speri=0.0
Area=0.0
 
#Dejas las unidades con un punto decimal para que al final te retorne resultados con decimales
#Antes de calcular el n3 como este sera mayor a n2, calculas el n2 que debe ser mayor al numero ingresado en primer lugar

while(n2%5.0!=0.0):
    n2 = n2+1.0

#Aqui con un ciclo while se repetira el codigo hasta que cumpla la condicion de ser mayor al numero anterior, te ahorras muchas lineas con los if.
#Ahora ya calculado n2, agregas el n3 en el programa

n3 = n2+1.0

while(n3%7.0!=0.0):
    n3 = n3+1.0
     
#Ahora verificas que es un triangulo, igual como lo tienes ya, yo lo anote de otra forma pero es lo mismo, calculas el semiperimetro y usas la formula de Herón para sacar el area

if ((n1 + n2 > n3)and (n2 + n3 > n1) and (n1 + n3 > n2)):
    Speri = (n1 + n2 + n3)/2.0
    Area = (((Speri*((Speri-n1)*(Speri-n2)*(Speri-n3))))**(1.0/2.0))
   
    print(Area)

else:
    print("error")