zoukankan      html  css  js  c++  java
  • 一些php小算法

    1、写一个function实现数组内每个元素之间加法的迭代运算,注意:数组元素全部为自然数。例子:$data=array(1.2.3);程序要求打印出数组每个数组元素相互之间各种可能性加法(包括元素自己本身加法)1+1=2,1+2=3,1+3=4,2+2=4,2+3=5,3+3=6

    思路:两个for循环依次相加每个元素。

    function test($arr){
    	$count = count($data);
    	for($i=0;$i<$count;$i++){
    		//如果是往后加就是下面的
    		//如果元素本身要加上之前的元素则:
    		//for($j=0;$j<$count;$j++){
    		for($j=$i;$j<$count;$j++){
    			$sum = $data[$i]+$data[$j];
    			echo $data[$i]."+".$data[$j]."=".$sum."<br>";
    		}
    	}
    }
    

     

    2、一个小孩买了价值小于1美元的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币个数找给小孩。假设提供的数目不限的面值为25美分,10美分,5美分,1美分的硬币,写一个算法让售货员用最少的硬币个数找给小孩。

    //输入糖的价格必须小于1美元
    //例如糖的价格为0.4美元
    function payback($par){
    	if($par>1){
    		return;
    	}
    	//一美元等于100美分
    	$money_total = 100;
    	//应该找回的钱为$payback美分
    	$payback = $money_total - $par*100;	
    	$arr = array(25,10,5,1);
    	while($payback>0){
    		foreach ($arr as $key => $value) {
    				if($payback >= $value){
    					$paybackCoins[] = $value;
    					$payback -= $value;
    					break;
    				}
    			}	
    	}
    	$paybackCoins = array_count_values($paybackCoins);
    
    	$str = "应该找回";
    	foreach ($paybackCoins as $key => $value) {
    		$str .= $key."面值硬币".$value."个";
    	}
    	return $str;
    
    }
    

      

  • 相关阅读:
    数据库的逻辑结构与物理结构
    HTTP笔记整理(1)
    当我看懂这张图的时候很痛苦~~~
    软件测试面试分享(转)
    达梦(DM)数据库Linux部署安装
    进阶的小小测试~软件测试不得不知的基础知识
    软件测试分类
    浅说软件需求分析
    浅说《测试用例》----给测试新手的
    软件测试人员两极分化
  • 原文地址:https://www.cnblogs.com/oceanL/p/8650795.html
Copyright © 2011-2022 走看看