编程的乐趣

今天公司财务要开一些发票,内容是纵贯线演唱会门票,但是要拆开来开,比如总价是13300,必须按380、580、800、1280、1680这五种形式的组合,起始就是通过这样的等式($a*380+$b*580+$c*800+$d*1280+$e*1680)==$total=13300来求出abcde的值,其中abcde必须是大于或者等于0的整数,他们在那用计算器算了半天没算出来问我,我想到用php的循环来算,结果就有了下面的这一段代码,还真好用 光是13300就有100多种组合方法,这还是怕脚本超市把循环限制了一下次数。忽然更加感觉到计算机的伟大,如果是人工来算,挨个循环试,找到一种方案也可能会好用半天时间。

<?php
$j=0;
$total=13300;
for($a=0;$a<40;$a++){
    for($b=0;$b<30;$b++){
        for($c=0;$c<20;$c++){
            for($d=0;$d<20;$d++){
                for($e=0;$e<20;$e++){
                    if(($a*380+$b*580+$c*800+$d*1280+$e*1680)==$total) {
                        echo $j+1;
                        echo '<font color=red>种方案 a'.$a.'-b'.$b.'-c'.$c.'-d'.$d.'-e'.$e.'</font><br />';
                        $j++;
                    }
                }
            }
        }
    }
}
?>