これ Scala ですよね
ということで Ruby で。
irb(main):010:0> (1..100).to_a.map{|e| e*11}
=> [11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143, 154, 165, 176, 187,
198, 209, 220, 231, 242, 253, 264, 275, 286, 297, 308, 319, 330, 341, 352, 363,
374, 385, 396, 407, 418, 429, 440, 451, 462, 473, 484, 495, 506, 517, 528, 539,
550, 561, 572, 583, 594, 605, 616, 627, 638, 649, 660, 671, 682, 693, 704, 715,
726, 737, 748, 759, 770, 781, 792, 803, 814, 825, 836, 847, 858, 869, 880, 891,
902, 913, 924, 935, 946, 957, 968, 979, 990, 1001, 1012, 1023, 1034, 1045, 1056,
1067, 1078, 1089, 1100]
まずは11の倍数を
irb(main):011:0> (1..100).to_a.map{|e| e*11}.collect{|e| e.to_s}
=> ["11", "22", "33", "44", "55", "66", "77", "88", "99", "110", "121", "132",
"143", "154", "165", "176", "187", "198", "209", "220", "231", "242", "253", "264",
"275", "286", "297", "308", "319", "330", "341", "352", "363", "374", "385",
"396", "407", "418", "429", "440", "451", "462", "473", "484", "495", "506", "517",
"528", "539", "550", "561", "572", "583", "594", "605", "616", "627", "638", "649",
"660", "671", "682", "693", "704", "715", "726", "737", "748", "759", "770", "781",
"792", "803", "814", "825", "836", "847", "858", "869", "880", "891", "902", "913",
"924", "935", "946", "957", "968", "979", "990", "1001", "1012", "1023", "1034",
"1045", "1056", "1067", "1078", "1089", "1100"]
それを文字列化
irb(main):015:0> (1..100).to_a.map{|e| e*11}.collect{|e| e.to_s.split('')}
=> [["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"], ["6", "6"], ["7", "7"],
["8", "8"], ["9", "9"], ["1", "1", "0"], ["1", "2", "1"], ["1", "3", "2"], ["1", "4", "3"],
["1", "5", "4"], ["1", "6", "5"], ["1", "7", "6"], ["1", "8", "7"], ["1", "9", "8"],
["2", "0", "9"], ["2", "2", "0"], ["2", "3", "1"], ["2", "4", "2"], ["2", "5", "3"],
["2", "6", "4"], ["2", "7", "5"], ["2", "8", "6"], ["2", "9", "7"], ["3", "0", "8"],
["3", "1", "9"], ["3", "3", "0"], ["3", "4","1"], ["3", "5", "2"], ["3", "6", "3"],
["3", "7", "4"], ["3", "8", "5"], ["3","9", "6"], ["4", "0", "7"], ["4", "1", "8"],
["4", "2", "9"], ["4", "4", "0"], ["4", "5", "1"], ["4", "6", "2"], ["4", "7", "3"],
["4", "8", "4"], ["4", "9", "5"], ["5", "0", "6"], ["5", "1", "7"], ["5", "2", "8"],
["5", "3", "9"], ["5", "5", "0"], ["5", "6", "1"], ["5", "7", "2"], ["5", "8", "3"],
["5", "9", "4"], ["6", "0", "5"], ["6", "1", "6"], ["6", "2", "7"], ["6", "3", "8"],
["6", "4", "9"], ["6", "6", "0"], ["6", "7", "1"], ["6", "8", "2"], ["6", "9", "3"],
["7", "0", "4"], ["7", "1", "5"], ["7", "2", "6"], ["7", "3", "7"], ["7", "4", "8"],
["7", "5", "9"], ["7", "7", "0"], ["7", "8", "1"], ["7", "9", "2"], ["8", "0", "3"],
["8", "1", "4"], ["8", "2", "5"], ["8", "3", "6"], ["8", "4", "7"], ["8", "5", "8"],
["8", "6", "9"], ["8", "8", "0"], ["8", "9", "1"], ["9", "0", "2"], ["9", "1", "3"],
["9", "2", "4"], ["9", "3", "5"], ["9", "4", "6"], ["9", "5", "7"], ["9", "6", "8"],
["9", "7", "9"], ["9", "9", "0"], ["1", "0", "0", "1"], ["1", "0", "1", "2"],
["1", "0", "2", "3"], ["1", "0", "3", "4"], ["1", "0", "4", "5"], ["1", "0", "5", "6"],
["1", "0", "6", "7"], ["1", "0", "7", "8"], ["1", "0", "8", "9"], ["1", "1", "0", "0"]]
一桁ごとに分けて
irb(main):019:0> (1..100).to_a.map{|e| e*11}.collect{|e| e.to_s.split('').map{|e| e.ord - '0'.ord}}
=> [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [1,1, 0],
[1, 2, 1], [1, 3, 2], [1, 4, 3], [1, 5, 4], [1, 6, 5], [1, 7, 6], [1, 8,7], [1, 9, 8],
[2, 0, 9], [2, 2, 0], [2, 3, 1], [2, 4, 2], [2, 5, 3], [2, 6, 4], [2, 7, 5], [2, 8, 6],
[2, 9, 7], [3, 0, 8], [3, 1, 9], [3, 3, 0], [3, 4, 1], [3, 5, 2], [3, 6, 3], [3, 7, 4],
[3, 8, 5], [3, 9, 6], [4, 0, 7], [4, 1, 8], [4, 2, 9], [4, 4, 0], [4, 5, 1], [4, 6, 2],
[4, 7, 3], [4, 8, 4], [4, 9, 5], [5, 0, 6], [5, 1, 7], [5, 2, 8], [5, 3, 9], [5, 5, 0],
[5, 6, 1], [5, 7, 2], [5, 8, 3], [5, 9, 4], [6, 0, 5], [6, 1, 6], [6, 2, 7], [6, 3, 8],
[6, 4, 9], [6, 6, 0], [6, 7, 1], [6, 8, 2], [6, 9, 3], [7, 0, 4], [7, 1, 5], [7, 2, 6],
[7, 3, 7], [7, 4, 8], [7, 5, 9], [7, 7, 0], [7, 8, 1], [7, 9, 2], [8, 0, 3], [8, 1, 4],
[8, 2, 5], [8, 3, 6], [8, 4, 7], [8, 5, 8], [8, 6, 9], [8, 8, 0], [8, 9, 1], [9, 0, 2],
[9, 1, 3], [9, 2, 4], [9, 3, 5], [9, 4, 6], [9, 5, 7], [9, 6, 8], [9, 7, 9], [9,9, 0],
[1, 0, 0, 1], [1, 0, 1, 2], [1, 0, 2, 3], [1, 0, 3, 4], [1, 0, 4, 5], [1, 0, 5, 6],
[1, 0, 6, 7], [1, 0, 7, 8], [1, 0, 8, 9], [1, 1, 0, 0]]
数値に戻して
irb(main):021:0> (1..100).to_a.map{|e| e*11}.collect{|e| e.to_s.split('').map{|e| e.ord - '0'.ord}.inject(:+)}
=> [2, 4, 6, 8, 10, 12, 14, 16, 18, 2, 4, 6, 8, 10, 12, 14, 16, 18, 11, 4, 6, 8,
10, 12, 14, 16, 18, 11, 13, 6, 8, 10, 12, 14, 16, 18, 11, 13, 15, 8, 10, 12, 14,
16, 18, 11, 13, 15, 17, 10, 12, 14, 16, 18, 11, 13, 15, 17, 19, 12, 14, 16, 18,
11, 13, 15, 17, 19, 21, 14, 16, 18, 11, 13, 15, 17, 19, 21, 23, 16, 18, 11, 13,
15, 17, 19, 21, 23, 25, 18, 2, 4, 6, 8, 10, 12, 14, 16, 18, 2]
加算(最初 .sum とか書いてしまったのはナイショだ)
irb(main):025:0> (1..100).to_a.map{|e| e*11}.collect{|e| e.to_s.split('').map{|e| e.ord - '0'.ord}.inject(:+) % 2 == 1}
=> [false, false, false, false, false, false, false, false, false, false, false,
false, false, false, false, false, false, false, true, false, false, false, false,
false, false, false, false, true, true, false, false, false, false, false, false,
false, true, true, true, false, false, false, false, false, false, true, true, true,
true, false, false, false, false, false, true, true, true, true, true, false, false,
false, false, true, true, true, true, true, true, false, false, false, true, true,
true, true, true, true, true, false, false, true, true, true, true, true, true, true,
true, false, false, false, false, false, false, false, false, false, false, false]
それが奇数かどうか
true/false の配列見ても面白くないので、ちょっといじる
irb(main):015:0> [*1..100].map{|e| e*11}.select{|e| e.to_s.split('').map{|e| e.ord - '0'.ord}.inject(:+)%2==1}
=> [209, 308, 319, 407, 418, 429, 506, 517, 528, 539, 605, 616, 627, 638, 649, 704, 715,
726, 737, 748, 759, 803, 814, 825, 836, 847, 858, 869, 902, 913, 924, 935, 946, 957, 968, 979]
ま、こんなところで。
_ はちょっと欲しいかな。