Sum digits of an integer: Difference between revisions

Add CLU
No edit summary
(Add CLU)
Line 1,219:
user=> (sum-digits "clojure" 32)
147</pre>
 
=={{header|CLU}}==
<syntaxhighlight lang="clu">% Find the digits of a number in a given base
digits = iter (n, base: int) yields (int)
while n>0 do
yield(n // base)
n := n / base
end
end digits
 
% Sum the digits of a number in a given base
digitsum = proc (n, base: int) returns (int)
sum: int := 0
for digit: int in digits(n, base) do
sum := sum + digit
end
return(sum)
end digitsum
 
start_up = proc ()
po: stream := stream$primary_output()
stream$putl(po, int$unparse(digitsum(1, 10)))
stream$putl(po, int$unparse(digitsum(1234, 10)))
stream$putl(po, int$unparse(digitsum(254, 16))) % 0xFE = 254
stream$putl(po, int$unparse(digitsum(3854, 16))) % 0xF0E = 3854
end start_up</syntaxhighlight>
{{out}}
<pre>1
10
29
29</pre>
 
=={{header|Common Lisp}}==
2,093

edits