Think Twice
IT技術メモ | プログラミングお題のメモ
Created: 2022-08-06 / Updated: 2022-08-06

[お題] ドドスコスコスコラブ注入♡


目次


お題

お題
Copy
配列{"ドド","スコ"}からランダムに要素を標準出力し続け、  
『その並びが「ドドスコスコスコ」を3回繰り返したもの』に一致したときに  
「ラブ注入♡」と標準出力して終了するプログラムを作成してください。

回答例

Groovyで解いてみた

dodosuko.groovy
Copy
def array = ['ドド', 'スコ']
def getWord = {
    def r = new Random(System.currentTimeMillis())
    return { array[r.nextInt(2)] }
}()
def keyword = 'ドドスコスコスコ' * 3
def love = 'ラブ注入♡'
def words = 'どどすこすこすこ' * 3
for (int count in 1..10000) {
   def w = getWord()
   words = words[2..-1] + w

   print "${w + (count % 20 == 0 ? "\n" : '')}"

   if (words == keyword) {
       println love
       println "${count} times."
       break
   }
}

参考

出典