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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como sumo los numeros de un entero hasta que me de "n" numeros (Resuelto)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Como sumo los numeros de un entero hasta que me de "n" numeros (Resuelto)  (Leído 9,988 veces)
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Como sumo los numeros de un entero hasta que me de "n" numeros
« Respuesta #10 en: 15 Noviembre 2010, 19:28 pm »

El problema con el número que tu le has puesto, es que el 0031416 lo toma como un octal, es decir, un numero en base 8. (Por ejemplo, prueba con 00981 y el compilador debería avisarte de ello).

En principio la solución debería ser esto:

Código
  1. int main(){
  2. int num;
  3. int sum=0;
  4. cin >> num;
  5. while(num>0){
  6.    sum+=num%10;
  7.   // esto era para pruebas cout <<"suM:" <<sum<< endl;
  8.    num=num/10;
  9.   // esto era para pruebas cout << "num:" << num << endl;
  10. }
  11.  
  12. cout << sum << endl;
  13.  
  14. return 0;}

El código lo que hace es, una vez le introduces el número (ahora si funciona con cifras como 0031416):
mientras num > 0
A sum le añade el resto de dividir entre 10 num (345%10 = 5) (Num aqui no se ha modificado)
Dividimos num entre 10 (345/10=34 (recordemos que estamos hablando de división de enteros))




En línea

¡Micronet!

Desconectado Desconectado

Mensajes: 159



Ver Perfil
Re: Como sumo los numeros de un entero hasta que me de "n" numeros
« Respuesta #11 en: 15 Noviembre 2010, 19:40 pm »

El problema con el número que tu le has puesto, es que el 0031416 lo toma como un octal, es decir, un numero en base 8. (Por ejemplo, prueba con 00981 y el compilador debería avisarte de ello).



hahahaha ya lo note y como le hago para que mne lo tome en base 10 :S?


En línea


"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Como sumo los numeros de un entero hasta que me de "n" numeros
« Respuesta #12 en: 15 Noviembre 2010, 19:49 pm »

Si lo introduces por teclado (por ejemplo) no da problema. El problema está en la forma que se declaran los enteros en C++:

Decimal: No empieza por 0 (para el literal 0 da igual la base).
Octal: Empiezan por 0. Ejemplo: 010 es como poner 8
Hexadecimal: Empiezan por 0x o por 0X.
Para los valores de 10 a 15 se utilizan las letras ABCDEF o también abcdef.

Entonces en el caso de que quieras trabajar con números del tipo 0xxxxx, lo tienes que introducir.
En línea

¡Micronet!

Desconectado Desconectado

Mensajes: 159



Ver Perfil
Re: Como sumo los numeros de un entero hasta que me de "n" numeros
« Respuesta #13 en: 15 Noviembre 2010, 19:54 pm »

Si lo introduces por teclado (por ejemplo) no da problema. El problema está en la forma que se declaran los enteros en C++:

Decimal: No empieza por 0 (para el literal 0 da igual la base).
Octal: Empiezan por 0. Ejemplo: 010 es como poner 8
Hexadecimal: Empiezan por 0x o por 0X.
Para los valores de 10 a 15 se utilizan las letras ABCDEF o también abcdef.

Entonces en el caso de que quieras trabajar con números del tipo 0xxxxx, lo tienes que introducir.





OhOhOHohO!!! muchas Gracias!!! akai! :) ^^
ahora a terminar lo que quiero conseguir xD jajaja :P
En línea


"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
¡Micronet!

Desconectado Desconectado

Mensajes: 159



Ver Perfil
Re: Como sumo los numeros de un entero hasta que me de "n" numeros (Resuelto)
« Respuesta #14 en: 15 Noviembre 2010, 20:40 pm »

Disculpen una vez mas la molestia:

Código:
while (sum!=n){
sum=0; ex+=1; numero=ex;

if (ex==9999999 && numero==9999999){
ex=0; numero=1; cont+=1;
}

while(numero>0){
sum+=numero%10;
numero=numero/10;
}
cout<<ex<<" da el valor de:"<<sum<<endl;

cont+=1;

}


Estoy usando tu codigo akai.
Lo que estoy tratando de hacer es que. cuando mi numero llegue al 9999999 me regrese 0000000 (en este caso regresara 0), pero cuando llega al 9999999 le incrementa un 1 y no me regresa el 0... me podrian ayudar :S ¿? una vez mas  :-[
En línea


"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Como sumo los numeros de un entero hasta que me de "n" numeros (Resuelto)
« Respuesta #15 en: 15 Noviembre 2010, 20:57 pm »

Código
  1. if (ex==9999999 && numero==9999999)

Para que entre en ese if, tanto ex como numero han de ser 9999999, los dos. No se exactamente qué tratas de hacer, pero creo que deberías revisar esa condición. Si lo que quieres es que ponga numero a 0 cuando alcance 9999999, para qué incluir en la condición a ex?

Debido a que no tengo el planteamiento completo de lo que intentas hacer, lo que te estoy comentando es un mero análisis de la condición de dicho if, cabe la posibilidad de que me equivoque
En línea

¡Micronet!

Desconectado Desconectado

Mensajes: 159



Ver Perfil
Re: Como sumo los numeros de un entero hasta que me de "n" numeros (Resuelto)
« Respuesta #16 en: 15 Noviembre 2010, 21:17 pm »

Código
  1. if (ex==9999999 && numero==9999999)


El planteamiento del problema es:

Un entero de 7 digitos... sin que pase a 8 digitos...
si el valor llega a 9999999 regresarlo al valor 0000000 si la suma no llega a tu valor indicado...

ejemplo si yo introdusco 105 (su suma me da 6) y aumento el numero para conseguir que la suma de sus valores me den 10.

Entonces un ejemplo de lo que quiero con la condicion es:

si me dan el numero de 9999999 y el numero que busco de la suma de sus valores me de 5... entonces lo regreso al valor 0000000 para que regrese otra vez al inicio y me de el numero.0000014 ...

Lh: No hagas doble post, utiliza el botón modificar.


Código
  1. while (sum!=n){
  2.  
  3. if (ex==9999999){
  4. ex=0; cont+=1;
  5. }
  6.  
  7. sum=0; ex+=1; numero=ex;
  8.  
  9.  
  10.  
  11. while(numero>0){
  12. sum+=numero%10;
  13. numero=numero/10;
  14. }
  15. cout<<ex<<" da el valor de: "<<sum<<endl;
  16.  
  17. cont+=1;
  18.  
  19. }


Listo ya lo encontre jejeje era solo cuestion de ordenamiento :) ya ya gracias akai =] ya te dejo de molestar... :) jejeje.
« Última modificación: 15 Noviembre 2010, 23:28 pm por Littlehorse » En línea


"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Como sumo los numeros de un entero hasta que me de "n" numeros (Resuelto)
« Respuesta #17 en: 15 Noviembre 2010, 23:59 pm »

Pero entonces, sería un ciclo infinito?
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
¡Micronet!

Desconectado Desconectado

Mensajes: 159



Ver Perfil
Re: Como sumo los numeros de un entero hasta que me de "n" numeros (Resuelto)
« Respuesta #18 en: 16 Noviembre 2010, 00:26 am »

Pero entonces, sería un ciclo infinito?


no porque termine hasta que la suma llegue al valor n. que se esta buscando
En línea


"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa en c "Máximo común divisor de dos números"
Programación C/C++
rayk 8 51,261 Último mensaje 26 Octubre 2013, 23:06 pm
por absgab
Ayuda con Código "Simple en C" Hacer que solo se ingresen numeros « 1 2 3 »
Programación C/C++
ZedGe 25 11,780 Último mensaje 30 Diciembre 2011, 23:11 pm
por rir3760
Un parche elimina los "números eróticos" de The Last of Us
Noticias
wolfbcn 0 1,414 Último mensaje 1 Julio 2013, 02:11 am
por wolfbcn
Serie de numeros "compleja"
Programación C/C++
Gunhack 2 1,922 Último mensaje 5 Abril 2015, 08:27 am
por Gunhack
Ingresar números en un vector hasta que se ingrese "0"
Programación C/C++
FrnkdOU 1 2,600 Último mensaje 10 Septiembre 2020, 22:17 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines