/**
 * Given an integer n
 * return an array ans of length n + 1 such that for each i (0 <= i <= n)
 * ans[i] is the number of 1's in the binary representation of i.
 *
 * Example 1:
 * Input: n = 2
 * Output: [0,1,1]
 * Explanation:
 * 0 --> 0
 * 1 --> 1
 * 2 --> 10
 *
 * Example 2:
 * Input: n = 5
 * Output: [0,1,1,2,1,2]
 * Explanation:
 * 0 --> 0
 * 1 --> 1
 * 2 --> 10
 * 3 --> 11
 * 4 --> 100
 * 5 --> 101
 */

/**
 * @param {number} n
 * @return {number[]}
 */
const countBits = (n=2) => {
    try {
        let ans = [];

        for (let i = 0; i <= n; i++) {
            let binary;
            let count = 0;
            binary = i.toString(2);
            for (let k = 0; k < binary.length; k++) {
                if (binary.charAt(k) === '1') {
                    count++;
                }
            }
            ans.push(count)
        }
        console.log("========Counting bits solve========");
        console.log(ans);
        console.log("===================================");
    } catch (ex) {
        console.log(ex);
    }
};

module.exports = {
    countBits,
};