gpt4 book ai didi

language-agnostic - Code Golf : Four is magic

转载 作者:行者123 更新时间:2023-12-03 05:02:21 25 4
gpt4 key购买 nike

锁定。这个问题及其答案是 locked,因为这个问题是题外话但具有历史意义。它目前不接受新的答案或互动。








谜题

我在高中时听到的一个小谜题是这样的......

  • 提问者要我给他一个数字;
  • 听到这个数字后,提问者会反复对其进行某种转换(例如,他可能会说 10 是 3),直到最终到达数字 4(此时他以 4 结束是魔术)。
  • 任何数字似乎最终都可以变成四个,无论如何。

  • 目标是尝试找出转换函数,然后能够自己可靠地解决这个难题。

    解决方案

    任何一步的变换函数是
  • 取有问题的数字,
  • 计算其英文单词表示中的字母数,忽略连字符或空格或“和”(例如,“十”中有 3 个字母,“三十四个”中有 10 个字母,“一百四十三个” "里面有 20 个字母)。
  • 返回该字母数。

  • 对于我曾经关心过的所有数字,这收敛到 4。由于“4”中也有四个字母,因此这里会出现无限循环;相反,它只是按照惯例被称为结束序列的魔法。

    挑战

    您的挑战是创建一段代码,该代码将从用户那里读取一个数字,然后打印显示重复应用的转换函数的行,直到达到“四是魔法”。

    具体来说:
  • 解决方案本身必须是完整的程序。它们不能仅仅是在输入中接受数字因子的函数。
  • 输入必须从标准输入读取。 (从“回声”管道或使用输入重定向很好,因为这也来自标准输入)
  • 输入应为数字形式。
  • 对于转换函数的每个应用程序,都应该打印一行: a is b. ,其中 a 和 b 是转换中数字的数字形式。
  • 需要句号(句点)!
  • 最后一行自然应该说, 4 is magic.
  • 代码应该为从 0 到 99 的所有数字产生正确的输出。

  • 例子:
    > 4
    4 is magic.

    > 12
    12 is 6.
    6 is 3.
    3 is 5.
    5 is 4.
    4 is magic.

    > 42
    42 is 8.
    8 is 5.
    5 is 4.
    4 is magic.

    > 0
    0 is 4.
    4 is magic.

    > 99
    99 is 10.
    10 is 3.
    3 is 5.
    5 is 4.
    4 is magic.

    获胜者是源代码字符数最短的提交,这也是正确的。

    奖金

    您还可以尝试编写代码的一个版本,该版本在每次应用转换函数时打印出数字的英文名称。原始输入仍然是数字,但输出行应该是数字的单词形式。

    (Double bonus for drawing shapes with your code)

    (编辑)一些澄清:
  • 我确实希望这个词在所有适用的情况下都出现在两边,例如Nine is four. Four is magic.
  • 不过我不在乎大小写。我不在乎你如何分隔单词标记,尽管它们应该分开:ninety-nine 可以,ninety nine 可以,ninetynine 不行。

  • 我正在考虑将这些作为与挑战有关的奖金竞赛的单独类别,因此如果您这样做,请不要担心您的代码比数字版本长。

    随意为每个版本提交一个解决方案。

    最佳答案

    GolfScript - 101 96 93 92 91 90 94 86 字节
    90 → 94:固定输出为 10 的倍数。94 → 86:重组代码。使用 base 100 删除不可打印的字符。86 → 85 :更短的字符串转换。

    {n+~."+#,#6$DWOXB79Bd")base`1/10/~{~2${~1$+}%(;+~}%++=" is "\".
    "1$4$4-}do;;;"magic."

    关于language-agnostic - Code Golf : Four is magic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230978/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com