トップページ > プログラム > 2018年04月17日 > ePc5Lh3L

書き込み順位&時間帯一覧

43 位/161 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000100000000000001



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
プログラミングのお題スレ Part10

書き込みレス一覧

プログラミングのお題スレ Part10
874 :デフォルトの名無しさん[sage]:2018/04/17(火) 10:33:51.01 ID:ePc5Lh3L
>>869 Squeak/Pharo Smalltalk

| check |

check := [:digitsStr |
 | digits checkDigit calcDigit |
 digits := digitsStr asArray collect: #digitValue.
 checkDigit := digits last.
 calcDigit := ((digits * #(6 5 4 3 2 7 6 5 4 3 2 0)) sum \\ 11
  in: [:x | x < 2 ifTrue: [0] ifFalse: [11 - x]]).
 checkDigit = calcDigit
].

#('99999999999?' '??9999999999') collect: [:incmpNum |
 | indices candNums |
 indices := incmpNum asArray collectWithIndex: [:chr :idx | chr == $? ifTrue: [idx] ifFalse: [0]].
 indices := indices reject: #isZero.
 candNums := OrderedCollection new.
 ($0 to: $9) asDigitsToPower: indices size do: [:digs |
  | candNum |
  candNum := incmpNum copy.
  indices with: digs do: [:idx :dig | candNum at: idx put: dig].
  (check value: candNum) ifTrue: [candNums add: candNum]
 ].
 incmpNum -> candNums asStringWithCr
]


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。