14:小球从10米高处自由下落,每次弹起的高度是下落高度的70%,
当小球弹起的高度不足原高度的千分之一时,小球很快会停止跳动,
计算小球在整个弹跳过程中所经历的总路程(忽略弹起高度不足原高度千分之一的部分)。

 

  1. <?php  
  2. /*  
  3. 14:小球从10米高处自由下落,每次弹起的高度是下落高度的70%,  
  4. 当小球弹起的高度不足原高度的千分之一时,小球很快会停止跳动,  
  5. 计算小球在整个弹跳过程中所经历的总路程(忽略弹起高度不足原高度千分之一的部分)。  
  6. *系统环境:windows/linux  
  7. *编译环境:php4/php5  
  8. *输入参数:无  
  9.  输出:out.txt  
  10. */ 
  11. //输出结果  
  12. $s=0;  
  13. $high=10;  
  14. //忽略弹起高度不足原高度千分之一的部分  
  15. $high0=$high/1000;  
  16.  
  17. while(1)  
  18. {  
  19.     //下落的距离  
  20.     $s+=$high;  
  21.     $high*=0.7;  
  22.     if($high < $high0)  
  23.     {  
  24.         //忽略弹起高度不足原高度千分之一的部分  
  25.         break;    
  26.     }  
  27.     //上升的距离  
  28.     $s+=$high;  
  29. }  
  30. output("total:$s",true);  
  31. error_msg("execute success");  
  32.  
  33.  
  34. /*  
  35.     把结果输出到输出文件里  
  36.     当isClean=true时清空out.txt  
  37. */ 
  38. function output($msg,$isClean=false)  
  39. {  
  40.     if($isClean)  
  41.     {  
  42.     $handle = fopen('out.txt''w');  
  43.     fclose($handle);      
  44.     }  
  45.     error_log($msg."\n", 3, "out.txt");  
  46. }  
  47. /*  
  48.     输入错误信息  
  49.     如果$is_exit表示输入信息后退出  
  50. */ 
  51. function error_msg($msg,$is_exit=true)  
  52. {  
  53.     if($is_exit)  
  54.         die($msg."\n");  
  55.     else 
  56.         echo $msg."\n";  
  57. }  
  58. ?>