我无法解决 php 中斐波那契因子的 Amazon Interviewstreet 挑战。 https://amazon.interviewstreet.com/challenges/dashboard/#problems
斐波那契值高达10^18
大的 int 值似乎是问题所在,而 bcmath 没有帮助......
我的代码 -
<?php
function s($k)
{
$x=$y=1;
while($y<=$k)
{
$z=$x+$y;
$x=$y;
$y=$z;
if($y%2==0&&$k%2==0)
{
fprintf(fopen("php://stdout", "w"), "%d ", 2);
fprintf(fopen("php://stdout", "w"), "%d\n", 2);
return;
}
for($i=3;$i<=$y;$i+=2)
if($y%$i==0&&$k%$i==0)
{
fprintf(fopen("php://stdout", "w"), "%d ", $y);
fprintf(fopen("php://stdout", "w"), "%d\n", $i);
return;
}
}
while($y%$k!=0)
{
$z=$x+$y;
$x=$y;
$y=$z;
}
fprintf(fopen("php://stdout", "w"), "%d ", $y);
fprintf(fopen("php://stdout", "w"), "%d\n", $k);
}
fscanf(STDIN, "%d\n", $t);
while($t--)
{
fscanf(STDIN, "%d\n", $k);
s($k);
}
?>