最も少ないコインの問題を探します


9:1人の子供が1ドル未満の砂糖を買って、1ドルのお金を店員に渡しました.店員は一番少ないコインの個数で子供に探してほしいと思っています.2 5セント、1 0セント、5セント、1セントの硬貨を提供したと仮定し、販売員が最小の硬貨の個数で子供に渡すアルゴリズムを書く.
 
   
   
   
   
  1. /*  
  2. 9: 1 , 1 。  
  3.  
  4. 2 5 、1 0 、5 、 1 ,  
  5. * :windows/linux  
  6. * :php4/php5  
  7. * : in.txt,  
  8.                      1 , , 1  
  9.                          0.36  
  10.      :out.txt  
  11. */ 
  12.  
  13. $params=getParams(1);  
  14. $argv0=trim($params[0]);  
  15. // 1  
  16. if(!is_numeric($argv0))  
  17. {  
  18.     error_msg("params 1 must be a numbers");  
  19. }  
  20. if($argv0 > 1)  
  21. {  
  22.     error_msg("params 1 must be a float );  
  23. }  
  24. $onedoll=100;//1 =100  
  25. $coins=array(25,10,5,1);  
  26. $payback=$onedoll-$argv0*$onedoll;  
  27. $paybackCoins=array();  
  28. while($payback > 0)  
  29. {  
  30.     foreach($coins as $coin)  
  31.     {  
  32.         //  
  33.         if($payback >= $coin)  
  34.         {  
  35.             $paybackCoins[]=$coin;  
  36.             $payback-=$coin;  
  37.             break;  
  38.         }  
  39.     }  
  40. }  
  41. //  
  42. output("payback with lest coins:".join(",",$paybackCoins),true);  
  43. error_msg("execute success");  
  44. /*  
  45.      in.txt  
  46.       
  47. */ 
  48. function getParams($paramNum)  
  49. {  
  50.     $in=file_get_contents("in.txt");  
  51.     if($in===FALSE){  
  52.         error_msg("cannot read in.txt,please check in.txt exists
    "
    );     
  53.     }  
  54.     $in=preg_replace("/(\s+)/i"" "$in);  
  55.     // ,  
  56.     $parms=split(" ",trim($in));  
  57.     if($parms===FALSE)  
  58.     {  
  59.         error_msg("cannot get param from in.txt
    "
    );  
  60.     }  
  61.     if(count($parms$paramNum)  
  62.     {  
  63.         error_msg("it needs $paramNum params
    "
    );  
  64.     }  
  65.     return $parms;  
  66. }  
  67.  
  68. /*  
  69.       
  70.      isClean=true out.txt  
  71. */ 
  72. function output($msg,$isClean=false)  
  73. {  
  74.     if($isClean)  
  75.     {  
  76.     $handle = fopen('out.txt''w');  
  77.     fclose($handle);      
  78.     }  
  79.     error_log($msg."
    "
    , 3, "out.txt");  
  80. }  
  81. /*  
  82.       
  83.      $is_exit  
  84. */ 
  85. function error_msg($msg,$is_exit=true)  
  86. {  
  87.     if($is_exit)  
  88.         die($msg."
    "
    );  
  89.     else 
  90.         echo $msg."
    "
    ;  
  91. }  
  92. ?>