Digital root: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|TypeScript}}: Added.) |
||
Line 4,263: | Line 4,263: | ||
DIGITAL ROOT 9 |
DIGITAL ROOT 9 |
||
ADDITIVE PERSISTENCE 2</pre> |
ADDITIVE PERSISTENCE 2</pre> |
||
== {{header|TypeScript}} == |
|||
{{trans|ASIC}} |
|||
<lang javascript>// Digital root |
|||
function rootAndPers(n: number, bas: number): [number, number] { |
|||
var pers = 0; |
|||
while (n >= bas) |
|||
{ |
|||
var s = 0; |
|||
do |
|||
{ |
|||
s += n % bas; |
|||
n = Math.floor(n / bas); |
|||
} while (n > 0); |
|||
pers++; |
|||
n = s; |
|||
} |
|||
return [n, pers]; |
|||
} |
|||
function intToString(n: number, wdth: number): string { |
|||
sn = (Math.floor(n)).toString(); |
|||
len = sn.length; |
|||
return (wdth < len ? "#".repeat(wdth) : " ".repeat(wdth - len) + sn); |
|||
} |
|||
for (var a of [1, 14, 267, 8128, 39390, 588225, 627615]) |
|||
{ |
|||
var rp = rootAndPers(a, 10); |
|||
console.log(intToString(a, 7) + |
|||
intToString(rp[1], 6) + intToString(rp[0], 6)); |
|||
} |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
1 0 1 |
|||
14 1 5 |
|||
267 2 6 |
|||
8128 3 1 |
|||
39390 2 6 |
|||
588225 2 3 |
|||
627615 2 9 |
|||
</pre> |
|||
=={{header|uBasic/4tH}}== |
=={{header|uBasic/4tH}}== |