Computer >> Máy Tính >  >> Lập trình >> Javascript

Xác định các con số hạnh phúc bằng JavaScript đệ quy

Con số hạnh phúc

Một số hạnh phúc là một số cuối cùng đạt đến 1 khi được thay thế bằng tổng của mỗi chữ số. Trong khi đó, nếu trong quá trình này, bất kỳ con số nào được lặp lại, chu kỳ sẽ chạy vô hạn và những con số như vậy được gọi là những con số không hạnh phúc.

Ví dụ - 13 là một con số đáng mừng bởi vì,

1^2 + 3^2 = 10 and,
1^2 + 0^2 = 1

Mặt khác, 36 là một con số không vui.

Chúng tôi được yêu cầu viết một hàm sử dụng đệ quy để xác định xem một số có phải là một số hạnh phúc hay không.

Vì vậy, hãy viết hàm này ra. Chìa khóa của hàm này là chúng ta sẽ phải ghi lại các số đã xuất hiện, nếu cùng một số xuất hiện khác, sẽ chuyển sang false nếu các chữ số bình phương cộng lại với 1, chúng ta trả về true.

Chúng tôi sẽ sử dụng một đối tượng để theo dõi số đã xuất hiện, chúng tôi cũng có thể sử dụng Setor Map, nhưng một đối tượng đơn giản cũng sẽ làm điều đó cho chúng tôi.

Mã để làm như vậy sẽ là -

Ví dụ

const squareSumRecursively = (n, res = 0) => {
   if(n){
      return squareSumRecursively(Math.floor(n/10), res+Math.pow((n%10),2));
   };
   return res;
};
const isHappy = (num, map = {}) => {
   if(num !== 1){
      if(map[num]){
         return false;
      }
      map[num] = 1;
      return isHappy(squareSumRecursively(num), map);
   };
   return true;
}
console.log(isHappy(36));
console.log(isHappy(13));
console.log(isHappy(36));
console.log(isHappy(23));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

false
true
false
true