我的问题已经完成了这个任务 - > https://www.spoj.com/problems/COINS/

这是我的代码:https://ideone.com/KnTkB5

<?php

class Coins {
private $matrix = array();
private $count = 0;

private function compute($n) {
  if (!isset($this->matrix[$n])) {
    $this->count++;
    if ($n  >= 0 && $n < 12) {
        $this->matrix[$n] = $n;
    } else {
        $a = $n >> 1;
        $b = floor($n/3);
        $c = $n >> 2;
        $this->matrix[$a] = !isset($this->matrix[$a]) ? $this->compute($a) : $this->matrix[$a];
        $this->matrix[$b] = !isset($this->matrix[$b]) ? $this->compute($b) : $this->matrix[$b];
        $this->matrix[$c] = !isset($this->matrix[$c]) ? $this->compute($c) : $this->matrix[$c];
        $this->matrix[$n] = max(($this->matrix[$a] + $this->matrix[$b] + $this->matrix[$c]), $n);
    }
  }
  return $this->matrix[$n];

}

public function init() {
    $tests = stream_get_line(STDIN, 10000000000, PHP_EOL);
    for ($i=0; $i<$tests; $i++) {
        $n = stream_get_line(STDIN, 20000000000, PHP_EOL);
        echo $this->compute($n) . PHP_EOL;

    }
   }
}

$lps = new Coins();
$lps->init();
?>

问题是这个任务的spoj上的WA(错误答案)状态,我不明白为什么会发生这种情况 .

我做了很多测试,发现没有不好的结果,我用这个工具进行测试 - > http://spojtoolkit.com/test/COINS

第二件事我设置内存限制与spoj任务相同,就我测试而言,它似乎不是内存分配的问题,也不是整数溢出 . 你可以在spoj上测试代码并给我一些可能出错的想法