1
A
回答
1
完成:
$a=array(1,10,25,50);
rsort($a);
$number=15;
$final = [];
$remainder = $number;
foreach($a as $num) {
do {
if($num <= $number) {
$final[] = $num;
$remainder -= $num;
}
if($remainder == 0) break;
} while($remainder >= $num);
}
echo $number . " = " . implode(' + ', $final);
而且此方法:
$a=array(1,10,25,50);
rsort($a);
$number=15;
echo $number . " = ";
$final = [];
foreach($a as $num) {
if((int)($number/$num) > 0) {
$final = array_merge($final, array_fill(0, (int)($number/$num), $num));
$number -= (int)($number/$num) * $num;
}
}
echo implode(' + ', $final);
1
M AKE这个递归函数:
function getcomb($arr,$actualNum, $total=0, $combination_array = array()){
foreach($arr as $k=>$v){
if($v > $actualNum) continue;
$shiftVal = $v;
if($total+$shiftVal <= $actualNum){
$combination_array[] = $shiftVal;
$total += $shiftVal;
$reminder = $actualNum-$total;
//echo "<pre>combination_array";print_r($combination_array);
if($reminder <= 0){
return $shiftVal;
}else{
return $shiftVal .' + '.getcomb($arr, $actualNum,$total, $combination_array);
}
}
}
}
$a=array(1,10,25,50);
rsort($a);
$number=15;
echo $str = getcomb($a, $number);
相关问题
- 1. Python:查找数组总和
- 2. 查找和使用多维数组PHP
- 3. 在数组中查找计数总和
- 4. 使用MIPS找到数组的总和
- 5. 循环查找数组java的总和
- 6. 查找总和为0的数组n
- 7. 查找嵌套数组的总和
- 8. 查找特定多维数组的总和php
- 9. 使用lodash或underscorejs查找数组字段总和
- 10. 使用组中的项目总数和数量在组中查找数字
- 11. 查找数组中的组合总数?
- 12. 查找PHP数组
- 13. PHP中数组的总和
- 14. 查找其数字总和为素数的数字
- 15. 查找使用MySQL和PHP
- 16. PHP数组查找和格式阵列
- 17. 查找数组中的列总数
- 18. HIVE查询数组总和
- 19. 多维数组使用PHP查找和更新值
- 20. 如何使用LINQ查找总和?
- 21. 如何使用SQL和PHP查找数据库表中的结果总数?
- 22. 查找负数和总数的正数
- 23. 查找数组项PHP
- 24. PHP数组查找时间
- 25. 查找数组中的2个元素,其总和为目标值
- 26. 通过使用两个日期查找PHP的总小时数
- 27. 查找指数和总和名单
- 28. 拆分数字串和查找总和
- 29. 找到一个数组,其总和由3
- 30. 查找数组中的3个连续数字的总和
不像看起来 –
可以通过我们做递归它容易吗? –
这是一个硬币更换问题? –