Linux/Unix Shell Scripting - Sumar los digitos de un numero?

 
Vista:

Sumar los digitos de un numero?

Publicado por Juan (3 intervenciones) el 22/09/2017 22:42:04
la verdad estoy completamente perdido, no se me ocurre como
la idea es sumar los digitos de un numero, por ejemplo.
ingreso el numero 66. La suma de sus digitos es 12.
como podria hacer eso?

hice esto pero no me funciona

1
2
3
4
5
6
7
8
9
10
11
echo "ingresa un numero de dos o mas caracteres"
read x
if [ $x -lt 10 ]
then
echo "El numero solo tiene un caracter"
fi
if [ $x -gt 9 ]
then
let a=($x/10)+($x%10)
echo "la suma de sus digitos es $a"
fi

me da este error
./cinco: línea 9: error sintáctico cerca del elemento inesperado `('
./cinco: línea 9: `let a=($x/10)+($x%10)'
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

Sumar los digitos de un numero?

Publicado por Juan juan.fernandez.bernt@gmail.com (3 intervenciones) el 22/09/2017 23:02:40
ya me resulto :D
si alguien quiere el codigo que me mande un correo y se lo mando
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

Sumar los digitos de un numero?

Publicado por Juan (3 intervenciones) el 22/09/2017 23:16:59
mentira, no me resulto :(

1
2
3
4
5
6
7
8
9
10
11
echo "ingresa un numero de dos o mas caracteres"
read x
if [ $x -lt 10 ]
then
echo "El numero solo tiene un caracter, por lo tanto su suma es $x"
fi
if [ $x -gt 9 ]
then
let a=$x/10+$x%10
fi
echo "la suma de sus digitos es $a"


con 2 digitos funciona pero cuando quiero usar 3 digitos hace esto
por ejemplo 123 suma 12 + 3 y me da 15, que puedo hacer?
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

Sumar los digitos de un numero?

Publicado por Tom (332 intervenciones) el 23/09/2017 11:56:22
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
 
read -p "Introduce un número: " target
len=${#target}
sum=0
for (( i=0; i < $len; i++ ))
do
	sum=$((sum + ${target:$i:1}))
done
echo "Suma: $sum"
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