เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขเป็นอินพุตแรกและอินพุตเดียว
ฟังก์ชันจะเลือกอาร์เรย์ย่อยที่มีความยาวคี่ที่เป็นไปได้ทั้งหมดจากอาร์เรย์ดั้งเดิม คำนวณผลรวมและส่งคืนผลรวมทั้งหมด
โปรดทราบว่าโดย subarray เราหมายถึงลำดับที่ต่อเนื่องกันของอาร์เรย์ และไม่ใช่การรวมตัวเลขใดๆ ที่เป็นไปได้
ตัวอย่างเช่น -
หากอาร์เรย์อินพุตเป็น −
const arr = [1, 2, 3, 4, 5];
จากนั้นอาร์เรย์ความยาวคี่ที่เป็นไปได้ทั้งหมดจะเป็น -
[1], [2], [3], [4], [5], [1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3, 4, 5]
และผลรวมของพวกเขาจะเป็น −
const output = 57
ตัวอย่าง
const arr = [1, 2, 3, 4, 5]; const sumArray = (arr = []) => arr.reduce((a, b) => a + b); const oddSum = (arr = []) => { let len = 1; let sum = 0; const { length } = arr; while(len <= length){ for(let i = 0; i + len <= length; i++){ sum += sumArray(arr.slice(i, i + len)); }; len += 2; }; return sum; }; console.log(oddSum(arr));
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
57