【发布时间】:2013-03-22 16:35:40
【问题描述】:
我有一个问题需要计算“幸运票”的数量,其中每张票有 6 个数字,而“幸运”票的前 3 个数字的总和等于后 3 个数字的总和。我知道这个问题可以通过使用一些代数公式来解决,但不幸的是我不懂代数,所以我想通过蛮力解决它 - 制作 2 个数组,将它们相加并像这样相互比较:
<?php
$intitial_number = 999999;
$A = array();
$B = array();
for(;$intitial_number > 0; $intitial_number--) {
$string = (string)$intitial_number;
$len = strlen($string);
for($i = 0; $i < 3; $i++) {
$A[] = $string[$i];
}
for($i = 3; $i < 6; $i++) {
$B[] = $string[$i];
}
if (array_sum($A) == array_sum($B)) echo 'Ok';
}
?>
当我尝试运行它时,我得到:
Ok
致命错误:/Applications/MAMP/htdocs/Exersize/LuckyTicket.php 第 26 行的最大执行时间超过 30 秒
我的错误是什么?有可能这样解决吗?
谢谢!
【问题讨论】:
-
错误信息有什么不清楚的地方?
-
你的问题是这里需要的处理量很大。本质上,您循环了 5,999,994 次。试试
set_time_limit()。 -
你需要多少个?