///////////////////////////////// No.423 ハムスター語初級(数詞) //入力文字読み取り var inputall = require('fs').readFileSync('/dev/stdin', 'utf8'); //すべて受け取り一文字ずつずつ区切って格納 var hamlanguage = inputall.split(""); //現代語の数字が入る var english = [] //ハム語を変換して配列に追加していく(hamu hamの違いは4番目の文字がuかどうかを判定) //変換が終わったハム語は除去していきハム語の配列が空になったら繰り返しの終了 while (true) { if (hamlanguage[0] == undefined) { break; } if (hamlanguage[3] == "u") { english.push(1) hamlanguage.splice(0, 4) } else { english.push(0) hamlanguage.splice(0, 3) } } var number = Number(english.join("")); //2進数を10進数へ変換 number = parseInt(number, 2); //10進数を2倍 number = number * 2; //10進数を2進数へ var input_binarystr = number.toString(2) // 文字をハムスター語に置き換える ハムスター語がなくなるまで繰り返し while (input_binarystr.indexOf("1", 0) != -1) { input_binarystr = input_binarystr.replace("1", "hamu"); } while (input_binarystr.indexOf("0", 0) != -1) { input_binarystr = input_binarystr.replace("0", "ham"); } //配列を結合して出力 console.log(input_binarystr) }