直接代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
input{
margin:20px;
height: 35px;
display: inline-block;
width: 400px;
font-size: 20px;
}
button{
height: 35px;
display: inline-block;
width: 100px;
}
</style>
</head>
<body>
<div style="text-align: center">
總數:<input type="number" id='k'>
<br>
數組:<input type="text" id="arrays" style="margin-bottom:0;" placeholder="逗號隔開">
<p style="margin-top:0;">例子:1,2,3,12,13</p>
<br>
<button onclick="fn()">開始</button>
<div id="result">
</div>
</div>
</body>
<script>
var k = document.getElementById('k');
var arrays = document.getElementById('arrays');
var result = document.getElementById('result');
function printNum(n, m, num, arr) {
if (n == -1) {
return;
}
if (m === 0) {
console.log(num);
var div = document.createElement('div');
div.innerHTML = num;
div.style.color = 'green';
result.appendChild(div)
}
num.push(arr[n-1]);
printNum(n - 1, (m - arr[n-1]), num,arr);
num.pop();
printNum(n - 1, m, num,arr);
}
function fn(){
result.innerHTML='';
var arr = arrays.value.split(/,|,/);
arr.forEach((element,index) => {
arr[index] = parseFloat(element)
});
if(parseFloat(k.value) == ''){
alert('輸入總數')
}else if(arr.lengt<2){
alert('數組至少兩位吧')
}else{
printNum(arr.length, parseFloat(k.value), [], arr);
}
}
</script>
</html>