Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,35 @@
|
|||
var r = [nil, 1]
|
||||
var s = [nil, 2]
|
||||
|
||||
func ffsr(n) {
|
||||
while(r.end < n) {
|
||||
r << s[r.end]+r[-1];
|
||||
s << [(s[-1]+1 .. r[-1]-1)..., r[-1]+1].grep{ s[-1] < _ }...
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
func ffr(n) { r[ffsr(n)] }
|
||||
func ffs(n) { s[ffsr(n)] }
|
||||
|
||||
printf(" i: R(i) S(i)\n");
|
||||
printf("==============\n");
|
||||
10.of { |i|
|
||||
printf("%3d: %3d %3d\n", i, ffr(i), ffs(i))
|
||||
}
|
||||
printf("\nR(40)=%3d S(960)=%3d R(41)=%3d\n", ffr(40), ffs(960), ffr(41));
|
||||
|
||||
var seen = Hash()
|
||||
|
||||
40.of { |i| seen{ffr(i)} := 0 ++ }
|
||||
960.of { |i| seen{ffs(i)} := 0 ++ }
|
||||
|
||||
if (seen.count {|k,v| (k.to_i >= 1) && (k.to_i <= 1000) && (v == 1) } == 1000) {
|
||||
say "All occured exactly once.";
|
||||
}
|
||||
else {
|
||||
var missed = (1..1000 -> grep { !seen.has_key(_) })
|
||||
var dupped = seen.grep { |_, v| v > 1 }.keys.sort;
|
||||
say "These were missed: #{missed}";
|
||||
say "These were duplicated: #{dupped}";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue