【问题标题】:Fibonacci Sequence - PHP shortest code possible斐波那契数列 - PHP 最短的代码
【发布时间】:2015-06-23 07:25:52
【问题描述】:

我花了一些时间尝试将斐波那契数列执行到 500 个数字并以尽可能短的代码量输出到屏幕。这对我来说是一个学习练习。

我已将它从 21 行压缩到 12 行,这是我可以编写的最短的代码,可以使它工作。谁能告诉我如何才能使代码更短?

我在 google 上查看了 PHP 循环,而 while 循环似乎效果最好。 PHP 中是否还有其他数学技巧可以用来进一步压缩?

通常,当我提出问题时,我喜欢展示我对这个问题所做的研究,但由于我不知道任何关键字来查找更好的数学或循环,所以我不确定要搜索什么。

代码:

$counter = 0;
$first = 1;
$second = 1;
echo $first."<br/>";
echo $second."<br/>";
while ($counter < 500) {
  $next = $first + $second;
  echo $next."<br/>";
  $counter++;
  $second=$first;
  $first=$next;
}

【问题讨论】:

标签: php


【解决方案1】:

对最短代码的研究被称为“代码高尔夫”,有一个whole stack exchange site专门研究它。

特别是,here 回答了您的问题。

代码是:

<?for($a=$b++;;$b+=$a=$b-$a){echo$a;}

这是由:

  • 删除空格(无论如何都会被忽略)(装饰)
  • 给变量起无意义的名字(不影响输出)(化妆品)
  • 滥用各种语言功能,例如零赋值和多重赋值的隐式初始化
  • 多重赋值技巧让您利用赋值顺序使用两个变量而不是三个(不需要“当前数字”)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2015-06-05
    • 2013-11-21
    相关资源
    最近更新 更多