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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda en calcular un programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda en calcular un programa  (Leído 4,078 veces)
indict

Desconectado Desconectado

Mensajes: 78


Ver Perfil
ayuda en calcular un programa
« en: 17 Octubre 2012, 17:25 pm »

Hola,
quiero crear un programa que yo dé un número n y calcule la suma de sus cifras.

Manualmente lo que debería hacer el programa es: Ej. el número 423

Dividiría el 423 entre 10, 423/10= 42 (Divisor) y 3 (Residuo), 42/10= 4(Divisor) y 2 (Residuo) y 4/10= 0 (Divisor) y 1 (Residuo), entonces en el programa se debería sumar todos los residuos es decir 3+2+1 y sumarle el último numerador 4 y restarle el último residuo 1.

((3+2+1)+(4))-1=9 Da el número de cifras de n.

Yo he echo esto, pero no me calcula exactamente lo que quiero, si me pudierais corregir estaría muy agradecido.  :rolleyes:

Código:
#include<iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    int suma=0;
    while(n>0)
    {
              suma=(n%10);
              suma=(n%10)+n-1;
              n=n/10;}
    cout<<suma<<endl;
system ("PAUSE");
return 0;
}



En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ayuda en calcular un programa
« Respuesta #1 en: 17 Octubre 2012, 18:23 pm »

El problema con tu programa se debe a que en cada iteracion del bucle estas asignando un nuevo valor al acumulador (la variable "suma"). Cambia el bucle a:
Código
  1. int suma = 0;
  2. do {
  3.   suma += n % 10;
  4. }while ((n /= 10) != 0);

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
indict

Desconectado Desconectado

Mensajes: 78


Ver Perfil
Re: ayuda en calcular un programa
« Respuesta #2 en: 17 Octubre 2012, 21:04 pm »

gracias rir3760 por tu ayuda :).

Ahora quiero hacer algo más simple, es calcular la suma de los residuos de un número entero dado. He echo esto pero no me lo calcula. Espero que veáis que le falta al programa.

Código:
#include<iostream>
using namespace std;

int main()
{
    int n;
    int mod, suma=0;
    cin>>n;
    while(n>0)
    {
              
              mod=n%10;
              suma=suma+mod;}
    cout<<suma<<endl;
system ("PAUSE");
return 0;
}
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: ayuda en calcular un programa
« Respuesta #3 en: 17 Octubre 2012, 21:45 pm »

la suma de los residuos de un numero dado? osea si te dan 4 pues el residuo de dividir 4 entre x?
« Última modificación: 17 Octubre 2012, 21:51 pm por Stakewinner00 » En línea

indict

Desconectado Desconectado

Mensajes: 78


Ver Perfil
Re: ayuda en calcular un programa
« Respuesta #4 en: 17 Octubre 2012, 22:06 pm »

el residuo de 4 sería 1. El de 426 por ejemplo sería 6 + 2 + 1
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: ayuda en calcular un programa
« Respuesta #5 en: 17 Octubre 2012, 22:10 pm »

el residuo de 4 sería 1. El de 426 por ejemplo sería 6 + 2 + 1
pero eso depende de por k lo dividas
4%4=0
4%2=0
En línea

indict

Desconectado Desconectado

Mensajes: 78


Ver Perfil
Re: ayuda en calcular un programa
« Respuesta #6 en: 17 Octubre 2012, 23:27 pm »

así perdón, es dividido siempre entre 10, n/10.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ayuda en calcular un programa
« Respuesta #7 en: 18 Octubre 2012, 02:28 am »

La suma de los residuos al dividir continuamente el numero por diez no es mas que ... la suma de los dígitos del numero.

Tu programa no funciona correctamente porque en el bucle no modificas la variable "n". Cámbialo a:
Código
  1. while (n > 0){
  2.   suma += n % 10;
  3.   n /= 10;
  4. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
indict

Desconectado Desconectado

Mensajes: 78


Ver Perfil
Re: ayuda en calcular un programa
« Respuesta #8 en: 19 Octubre 2012, 19:10 pm »

Gracias rir3760
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programa para calcular el nivel de alcohol
.NET (C#, VB.NET, ASP)
Amagekure 7 7,018 Último mensaje 2 Marzo 2010, 19:45 pm
por Amagekure
Programa para calcular numeros unlock
Dispositivos Móviles (PDA's, Smartphones, Tablets)
jlmn22 0 2,552 Último mensaje 10 Septiembre 2010, 15:22 pm
por jlmn22
Ayuda, calcular subconjuntos
Java
jonathandres7 0 3,180 Último mensaje 19 Septiembre 2010, 18:56 pm
por jonathandres7
AYUDA URGENTE EN C, calcular centros numericos
Programación C/C++
kikian94 1 6,519 Último mensaje 22 Octubre 2012, 21:22 pm
por leosansan
ayuda con programa en C para calcular dia de pascua
Programación C/C++
garukusanagi23 2 4,006 Último mensaje 27 Octubre 2018, 21:40 pm
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines