斐波那契数列 - PHP 最短代码

Jas*_*son 1 php

我花了一些时间尝试以尽可能短的代码量执行 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;
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*sta 7

对最短代码的研究被称为“代码高尔夫”,并且有一个专门针对它的全栈交换站点。

特别是,您的问题在这里得到了解答。

代码是:

<?for($a=$b++;;$b+=$a=$b-$a){echo$a;}
Run Code Online (Sandbox Code Playgroud)

这是通过以下方式实现的:

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