<html>
<head>
  <meta charset="UTF-8">
  <style>
  body > * {
    margin-top: 5rem;
  }
  body {
    display: flex;
    flex-flow: column;
    margin: 0 auto;
    width: 500px;
  }
  div {
    flex: 1 0;
    align-items: flex-end;
  }
  textarea {
    width: 100%;
    flex: 5 0;
    height: 10rem;
  }
  </style>
</head>
<body>
  <div>
    <h1>🌗 🚀 👽 📡 🌓</h1>
    <p>Find <i>x</i>, such that ƒ(<i>x</i>) = <i>x</i></p>
    <textarea id="input" value="" type="text" onInput="check()"></textarea>
    <div id="result"></div>
  </div>
<script>
function check() {
  var i = input.value.replace(/\s/g, '');
  if (i == "") {
    result.innerText = "";
  } else {
    var t = f(i);
    if (t == i) {
      result.innerText = "good!";
    } else {
      result.innerText = "bad! (" + t + " != " + i + ")";
    }
  }
}

function f(x) {
  if ((x.substr(0, 2) == '🚀') && (x.slice(-2) == '🚀')) {
    return x.slice(2, -2);
  }
  if (x.substr(0, 2) == '👽') {
    return '🚀' + f(x.slice(2));
  }
  if (x.substr(0, 2) == '📡') {
    return f(x.slice(2)).match(/..|/g).reverse().join("");
  }
  if (x.substr(0, 2) == '🌗') {
    return f(x.slice(2)).repeat(5);
  }
  if (x.substr(0, 2) == '🌓') {
    var t = f(x.slice(2));
    return t.substr(0, t.length/2);
  }

  return "";
}
</script>

<!-- puzzle by Alok + Matb -->

</body>
</html>

 不同emoji有不同的功能:

🌗:把字符串复制5次的操作入栈

🌓:把字符串切半的操作入栈

👽:在字符串开头加上🚀的操作入栈

📡:把字符串反过来的操作入栈

🚀XXXX🚀:把操作出栈作用于XXXX

 

题目要把输入捣鼓之后输出与输入一样。

分析:

1. 要输出特定的字符串一定要用 🚀 包起来,所以结尾一定是 🚀

2. 输出结尾一定是 🚀 ,所以一定要有操作 📡👽📡 ,如 📡👽📡🚀XXXX🚀 输出 XXXX🚀

2. 🚀XXXX🚀 中一定要有 📡👽📡,如 📡👽📡🚀📡👽📡🚀📡👽📡🚀🚀 输出 📡👽📡🚀📡👽📡🚀🚀,很接近了是不是?

3. 现在只需适当增长输出就可以了。

📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀🚀

 

打赏还是打残,这是个问题
[Math] C8: captcha
[Programming] C1: dot-n-dash
立即登录, 发表评论.
没有帐号? 立即注册
0 条评论