Hola, llevo mas de 3 dias quebrandome la cabeza para realizar esto:
Escriba un programa que solicite un valor entero y haga lo siguiente: si el número es positivo encuentre todas las sumas de números enteros positivos consecutivos hacia la derecha (orden ascendente) que den el número introducido, por ejemplo: 50 = 8 + 9 + 10 + 11 + 12 y 50 = 11 + 12 + 13 + 14; si el número es negativo éste encuentre todas las sumas de número enteros negativos consecutivos hacia la izquierda (orden descendente) que den el número introducido, por ejemplo: -50 = -8 - 9 - 10 - 11 - 12 y -50 = -11 - 12 - 13 – 14; pero si no existe ninguna suma imprima que no es posible obtenerla.
Y esto es lo que llevo:
#include<stdio.h> void main() { int nu,az=0,x=1,y=-1; printf("Ingrese un numero: "); scanf("%i",&nu); if(nu>0) { do { az=az+x; printf("+ %i ",x); x++; } while(az<nu); } if(nu<0) { do { az=az+y; printf(" %i ",y); y--; } while(az>nu); } }
No ibas mal encaminado.
Pero te faltaba un bucle. Tu haces la suma (con el do-while) desde x=1 mientras az<nu. Sin embargo, esa suma la tienes que hacer empezando en 1, en 2, en 3, etc. comprobando todas las posibilidades. Tienes que añadir un for, por ejemplo, for (i=1; i<nu; i++)x=i;
Sería algo así:
Aunque no me costaba nada hacerlo todo, he querido hacer solo la parte de los positivos, simplemente para dejarte hacer la parte de los negativos. Así te obligas a entender el código :). La parte de los positivos la he probado y funciona.
Si tienes muchos problemas con los negativos, dimelo, aunque lo dudo, porque es prácticamente igual pero hacia atrás.
Saludos!
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Sencillamente impresionante,
Sencillamente impresionante, no me había planteado la idea de poner un for para que no sea siempre 1+2+3...
Ya lo he entendido, aunque pare serte sincero, me llevo 30 min. xD
Gracias ^^
De nada.
De nada. Me alegro que se entienda :D.
Joserc87
Joserc87 ayudando como siempre a los nuevos en esto!!! Gracias por todo :)
De nada.
Al fin y al cabo, yo también fuí nuevo en esto una vez, (como todos) y también me ayudaron. Llegará el día en que seais vosotros los que ayudeis a "los nuevos" :P.
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
¿Se puede obtener SIEMPRE un
¿Se puede obtener SIEMPRE un número a partir de la suma de una serie de números consecutivos?