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

Tìm nhóm lớn nhất cùng tổng chữ số trong JavaScript

Viết hàm nhận số nguyên dương n. Nhóm các số 1..n theo tổng chữ số. Trả về kích thước nhóm lớn nhất.

Ví dụ: num=15 → 2 (các nhóm: [1,10], [2,11], [3,12], [4,13], [5,14], [6,15], [7], [8], [9]).

Ví dụ

const num = 67;
const countLargestGroup = (num = 1) => {
  if (num < 10) return num;
  let res = 0, temp = 0;
  let map = {};
  for (let i = 1; i <= num; i++) {
    let sum = 0, n = i;
    while (n) { sum += n % 10; n = Math.floor(n / 10); }
    if (map[sum] != undefined) map[sum]++;
    else map[sum] = 1;
  }
  for (const key of Object.keys(map)) {
    if (temp == map[key]) res++;
    else if (temp < map[key]) { res = 1; temp = map[key]; }
  }
  return res;
};
console.log(countLargestGroup(num));

Kết quả

4