Self-describing numbers: Difference between revisions

m
→‎{{header|Sidef}}: minor code simplifications
(→‎{{header|C}}: Removed first version temporarily (I will replace it).)
m (→‎{{header|Sidef}}: minor code simplifications)
Line 1,949:
=={{header|Sidef}}==
{{trans|Perl 6}}
<lang ruby>func sdn(Number n) {
var b = [0]*n.len;
var a = n.chars;digits
a.each { |i| b[i] := 0 ++ }
a.join == b.join;
}
 
var values = <[1210, 2020, 21200, 3211000,
42101000, 521001000, 6210001000, 27, 115508>;]
 
values.each { |test|
say "#{test} is #{sdn(test) ? '' : 'NOT ' }a self describing number.";
}
 
say "\nSelf-descriptive numbers less than 1e5 (in base 10):"
0.to(^1e5). -> each { |i| say i if sdn(i.to_s) }</lang>
{{out}}
<pre>
Line 1,984:
 
'''Extra credit:''' this will generate all the self-describing numbers in bases 7 to 36:
<lang ruby>for b in (7 .to(. 36).each { |b|
var n = ((b-4) * b**(b-1) + 2*(b**(b-2)) + b**(b-3) + b**3 -> base(b));
say "base #{'%2d' % b}: #{n}";
}</lang>
{{out}}
2,747

edits