2015-04-16 2 views
0

Я потратил некоторое время, пытаясь выполнить последовательность Фибоначчи на 500 номеров и вывести на экран в кратчайший возможный код. Это было упражнение для меня.Последовательность Fibonacci - самый короткий возможный код PHP

Я сократил его с 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; 
} 
+2

Этот вопрос принадлежит на http://codereview.stackexchange.com/ – max

+1

возможный дубликат [PHP Fibonacci Sequence] (http://stackoverflow.com/questions/15600041/php-fibonacci-sequence) – Sugar

+2

Может быть на http://codegolf.stackexchange.com – Hypaethral

ответ

4

исследование для кратчайшего кода называется «код гольф» и есть whole stack exchange site ему посвящена.

В частности, на ваш вопрос ответили here.

Код:

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

это работает:

  • удаления непечатаемых (которые игнорируются в любом случае) (косметических)
  • давая переменные бессмысленные имена (не влияет на выход) (косметический)
  • злоупотребление различными языковыми функциями, такими как неявная инициализация до нуля и несколько назначений
  • множественная трюк назначение позволяет использовать две переменные вместо трех (не требуется для «текущего номера») эксплуатируют порядок присвоения
Смежные вопросы