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

Xác định số hạnh phúc (Happy Number) dùng đệ quy JavaScript

Số hạnh phúc (Happy Number)

Số hạnh phúc: thay bằng tổng bình phương chữ số, cuối cùng về 1. Nếu lặp lại số đã xuất hiện → số không hạnh phúc.

Ví dụ: 13 là hạnh phúc vì 1²+3²=10, 1²+0²=1. 36 không hạnh phúc.

Viết hàm đệ quy kiểm tra. Dùng object lưu số đã xuất hiện, gặp lại thì false, về 1 thì true.

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

Kết quả

Đầu ra console:

false true false true