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


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Ejercicio Bucle While en Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio Bucle While en Python  (Leído 897 veces)
mgkelly

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ejercicio Bucle While en Python
« en: 11 Mayo 2017, 13:45 »

Hola,
He intentado de mil maneras hacer este ejercicio en Python y no he sido capaz, todas me da error, viene para hacer con bucles while...
Dejo el enunciado por si alguno tiene idea, graciass :D:

"Dados dos números enteros n (n≥0) y a (a>0) encontrar, si existe, el
menor entero x del intervalo [0, n] para el que se cumpla lo siguiente: la diferencia
entre las sumas de los valores enteros de los intervalos [n-x, n] y [0, x] coincide
con a."

He intentado hacer algo así, pero no doy con la solucion:

Código
  1. n=int(raw_input("introduce n: "))
  2. a=int(raw_input("introduce a: "))
  3. x=0
  4. sumaintx=0
  5. sumaintn=0
  6.  
  7.  
  8. for x in range(0,n):
  9.    sumaintx=0
  10.    sumaintn=0
  11.    while(sumaintn-sumaintx!=a):
  12.      for i in range(n-x,n):
  13.          sumaintn=sumaintn+i
  14.          for j in range(0,x):
  15.              sumaintx=sumaintx+j
  16.    if(sumaintn-sumaintx==a):
  17.        print x


« Última modificación: 11 Mayo 2017, 15:44 por engel lex » En línea

NEBIRE


Desconectado Desconectado

Mensajes: 697


Ver Perfil
Re: Ejercicio Bucle While en Python
« Respuesta #1 en: 24 Mayo 2017, 04:33 »

Pués a mi me sale... lo complicado es entender correctamente el enunciado.

He puesto como valor para n = 100000 y para a= 350 y la respuesta me da 449.
Probaré con más valores para a...
' a = 350 ' 449
' a = 65  ' 449
' a = 165 ' 446
' a = 43  ' un primo a ver que pasa 449
a = 255 ' 447

- Posiblemente tu valor para n sea tan bajo, que a no tenga oportunidad de encontrarse en ese rango...

- Bueno mirando de nuevo tu código, lo que veo es que fuerzas el while, dentro del primer bucle For, por lo que es incapaz de regresar allí e incrementar x, que siempre valdrá 0. (NOTA: Esto sin embargo, no inutiliza mi comentario previo, sobre un límite demasiado bajo de n).

Reescríbelo así:
Código
  1.    n=int(raw_input("introduce n: "))
  2.    a=int(raw_input("introduce a: "))
  3.    x=0
  4.    sumaintx=0
  5.    sumaintn=0
  6.  
  7.    x=-1
  8.    while(x<n):
  9.        x= (x +1)
  10.        sumaintx=0
  11.        sumaintn=0
  12.        #while(sumaintn-sumaintx!=a):
  13.          i= n-x
  14.          for i in range(n-x,n):
  15.              sumaintn=sumaintn+i
  16.              for j in range(0,x):
  17.                  sumaintx=sumaintx+j
  18.        if(sumaintn-sumaintx==a):
  19.            print x


« Última modificación: 25 Mayo 2017, 03:30 por NEBIRE » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 12.901



Ver Perfil
Re: Ejercicio Bucle While en Python
« Respuesta #2 en: 24 Mayo 2017, 06:30 »

viendo matemáticamente esto no tiene muchos ciclos

Citar
la diferencia
entre las sumas de los valores enteros de los intervalos [n-x, n] y [0, x]

esto es equivalente a (n-x)*x+(n-x) (si sacas algunas cuentas verás que es esto)

solo resuelve la ecuación donde eso iguale a a y olvidate del ciclo XD

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ejercicio bucle while
Programación C/C++
indict 2 558 Último mensaje 19 Marzo 2013, 14:58
por amchacon
(Python 3.5) Bucle for
Scripting
BigKaz 1 282 Último mensaje 10 Diciembre 2016, 19:31
por engel lex
(PYTHON 3.6) Listas y bucle FOR
Scripting
BigKaz 5 854 Último mensaje 13 Enero 2017, 05:13
por engel lex
Ejercicio java bucle
Java
txipiron 1 409 Último mensaje 10 Febrero 2017, 11:40
por MNicolas
(Python 3.6) Bucle for y while mezclados
Scripting
BigKaz 1 448 Último mensaje 27 Enero 2017, 02:09
por engel lex
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines