我正在尝试使用蛮力解决最新的 Project Euler 问题(我知道这不是最好的解决方案,但在我弄清楚我错在哪里之前,我会使用它)。
我不明白,我在这里到底做错了什么。我很确定我生成了正确的数字,但结果仍然与提供的数字错误:
function number_split( $nb )
{
GLOBAL $arr;
$length = strlen( $nb );
if( $length == 1 )
return true;
$count = 0;
for( $i=1; $i<$length; $i++ ) {
for( $j=0; $j<=$length-$i; $j++ ) {
$temp = substr( $nb, $j, $i );
if( $temp % $length == 0 ) {
$count++;
if( $count > 1 )
return false;
}
}
}
return ( $count == 1 );
}
$lim = 3;
$res = 0;
$start = gmp_strval( gmp_pow( 10, $lim-1 ) );
$end = gmp_strval( gmp_pow( 10, $lim ) );
for( $i=$start; $i<$end; $i++ ) {
$res += number_split( $i );
}
echo $res;
我在应该有 389 的地方得到 378。我在这里做错了什么?
我不想要答案,只是想知道我的逻辑哪里错了。
问题: