Sum digits of an integer: Difference between revisions

Python 3, simplify
(→‎{{header|Vlang}}: Rename "Vlang" in "V (Vlang)")
(Python 3, simplify)
Line 3,375:
or
 
<syntaxhighlight lang="python">def toBaseXsumDigits(num, base=10):
output = []
while num:
num, rem = divmod(num, base)
output.append(rem)
return output
 
def sumDigits(num, base=10):
if base < 2:
print ("Error: Basebase must be at least 2")
return
returnnum, sum(toBaseX = abs(num), base))0
while num >= base:
num, rem = divmod(num, base)
output.append(sum += rem)
return outputsum + num
 
print (sumDigits(1))
print (sumDigits(12345))
print (sumDigits(-123045))
print (sumDigits(0xfe, 16))
print (sumDigits(0xf0e, 16))</syntaxhighlight>
{{out}}
<pre>
Line 3,402 ⟶ 3,399:
</pre>
The following does no error checking and requires non-base 10 numbers passed as string arguments:
<syntaxhighlight lang="python">def sumDigits(num, base=10):
return sum([int(x, base) for x in list(str(num))])
def sumDigits(num, base=10):
return sum([int(x, base) for x in list(str(num))])
 
print (sumDigits(1))
print (sumDigits(12345))
print (sumDigits(123045))
print (sumDigits('fe', 16))
print (sumDigits("f0e", 16))</syntaxhighlight>
Each digit is base converted as it's summed.
 
559

edits