- プログラミングのお題スレ Part5
698 :デフォルトの名無しさん[sage]:2014/11/05(水) 22:29:28.68 ID:IU8t8wXV - >>674 Squeak Smalltalk
| fn | fn := [:m | | queue ans | queue := OrderedCollection with: {''. m}. [queue notEmpty] whileTrue: [ | seq next | seq := queue first first. (next := queue removeFirst last) = 1 ifTrue: [queue removeAll. ans := seq] ifFalse: [ next \\ 3 = 2 ifTrue: [queue add: {'b', seq. next + 1 / 3}]. (next isDivisibleBy: 3) ifFalse: [queue add: {'a', seq. next * 2}]] ]. m -> ans ]. #(10 4 67 175 809) collect: fn "=> { 10->'bbbaba' . 4->'bbbabbbaaaabaaa' . 67->'bbbababbababbaabaabaabbaabaaa' . 175->'bbbbbababaabbaaaaababbabbaaababbaabaaa' . 809->'bbbbbababaabbaaabbaaababbbaaababbaabaabaa' } "
|
|