Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ผลคูณของผลรวมหลักแบบเวียนเกิดใน JavaScript


เราต้องสร้างฟังก์ชันที่รับอาร์กิวเมนต์ได้หลายตัว (ตัวเลข) บวกมันเข้าด้วยกัน และคืนค่าผลคูณของหลักเมื่อคำตอบเหลือแค่ 1 หลัก

ตัวอย่าง −

ถ้าอาร์กิวเมนต์คือ −

16, 34, 42

เราต้องบวกเข้าด้วยกันก่อน −

16+34+42 = 92

แล้วคูณหลักต่อเนื่องจนได้ 1 หลักแบบนี้ −

9*2 = 18 1*8 = 8

เมื่อได้ตัวเลข 1 หลัก เราต้องคืนค่าจากฟังก์ชันของเรา

เราจะแยกเป็นสองฟังก์ชัน −

  • ฟังก์ชันหนึ่งรับตัวเลขและคืนค่าผลคูณของหลัก เราจะใช้ recursion เรียกฟังก์ชันนี้ว่า product()

  • ฟังก์ชันที่สองเรียก product() แบบเวียนเกิด และตรวจสอบว่าผลคูณเป็น 1 หลัก คืนค่าผลคูณ มิฉะนั้นวนต่อ

โค้ดสำหรับฟังก์ชันทั้งหมดจะเป็น −

ตัวอย่าง

const recursiveMuliSum = (...numbers) => {    const add = (a) => a.length === 1 ? a[0] : a.reduce((acc, val) => acc+val);    const produce = (n, p = 1) => {       if(n){          return produce(Math.floor(n/10), p*(n%10));       };       return p;    };    const res = produce(add(numbers));    if(res > 9){       return recursiveMuliSum(res);    }    return res; }; console.log(recursiveMuliSum(16, 28)); console.log(recursiveMuliSum(16, 28, 44, 76, 11)); console.log(recursiveMuliSum(1, 2, 4, 6, 8));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้

6 5 2