Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tích đệ quy của tổng chữ số trong JavaScript

Tạo hàm nhận bất kỳ số lượng tham số số, cộng chúng lại, trả về tích các chữ số khi kết quả chỉ còn 1 chữ số.

Ví dụ: 16, 34, 42 => tổng = 92 => 9*2=18 => 1*8=8 => trả về 8.

Chia thành 2 hàm: product() đệ quy tính tích chữ số; hàm chính gọi đệ quy product() cho đến khi kết quả 1 chữ số.

Ví dụ

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));

Kết quả

Đầu ra trong console sẽ là:

6 5 2