Matlab - Como sumar digitos de un numero en octave

 
Vista:
sin imagen de perfil

Como sumar digitos de un numero en octave

Publicado por Gustavo (3 intervenciones) el 04/10/2019 05:43:40
Bueno, soy nuevo en programación y quisiera saber si hay un código que me permita saber la suma de los dígitos de un número que introduzca desde el teclado, por ejemplo, 569, la suma es igual a 20, y la suma es 2, pero con cualquier número de extensión n, seria de gran ayuda, por cierto, programo en octave.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como sumar digitos de un numero en octave

Publicado por Daniel (354 intervenciones) el 04/10/2019 13:44:43
Hola,

El secreto esta en la división entera. Lo que hay que hacer el sumar los restos de las divisiones enteras del número hasta que sean cero.

1
2
3
4
5
6
7
8
numero = 569;
 
resultado = 0;
 
while (numero > 0)
    resultado = resultado + rem(numero, 10);
    numero = idivide(numero, int32(10));
end

Obteniendo el resultado esperado.

1
2
3
4
5
resultado =
 
  int32
 
   20

Lo he probado solo en Matlab, en Octave debería funcionar.

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como sumar digitos de un numero en octave

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 04/10/2019 14:53:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear
a=12345679;
V(1)=a;
k=2;
while 1
    a=num2str(a);
    s=0;
    for i=1:length(a)
        s=s+str2double(a(i));
    end
    a=s;
    V(k)=a;
    k=k+1;
    if length(num2str(a))==1
        V
        s
 
        return;
    end
end


1
2
3
4
5
>> suma_de_digitos
V =
   12345679         37         10          1
 
s =  1


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como sumar digitos de un numero en octave

Publicado por Gustavo Angel (3 intervenciones) el 05/10/2019 00:07:04
Gracias me ayudo bastante
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como sumar digitos de un numero en octave

Publicado por Gustavo Angel (3 intervenciones) el 05/10/2019 00:08:30
Gracias por su ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como sumar digitos de un numero en octave

Publicado por Daniel (354 intervenciones) el 04/10/2019 15:22:17
No me había fijado que lo quería reducir hasta el final. Lo que no tiene ninguna gracias porque no es más que el resto de la división entera por 9 del número. Todo se puede hacer solo con:

1
rem(numero, 9)

¡Pero lo que nos hemos divertido!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como sumar digitos de un numero en octave

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 04/10/2019 15:38:38
Depende del enfoque. ¿Entonces no tendría sentido decirle a los alumnos que están estudiando programación, que hagan un código para ver si un numero es primo o no ?, porque ya existe un comando que hace eso que es isprime(). Aca el punto al parecer es más que el alumno aprenda a programar, aprenda a usar lógica, aprenda a razonar, que desarrolle su imaginación. En mis cursos de programación en la Universidad, tenía 40 alumnos y dejaba una pregunta en la pizarra para hacer un programa en Matlab, y cada uno de los códigos que revisaba en sus pcs era distinto en algo, pero que a la larga llegaban a la misma respuesta.


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como sumar digitos de un numero en octave

Publicado por Daniel (354 intervenciones) el 04/10/2019 16:12:06
Depende del entorno en el que se plantee el problema, el cual yo no conozco. En un curso de algebra donde Matlab es una herramienta de cálculo yo esperaría esta última solución. Por otro lado, en uno de programación esperaría que el alumno convierta el numero en una cadena de texto e iterarse sobre los caracteres.

En un entorno real la mejor solución para resolver el problema es obtener el resto de la división entera. En un entorno docente la solución no es pedir a otra persona que haga el trabajo. Como mucho pedir una pista. Da igual que al alumno use la función de Matlab u otra que encuentre, en ambos casos no aprende.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar