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

Tìm nhóm có các phần tử lớn nhất có tổng chữ số bằng nhau trong JavaScript

Chúng tôi bắt buộc phải viết một hàm JavaScript nhận một số nguyên dương, chẳng hạn như n, làm đối số duy nhất.

Trước tiên, hàm nên nhóm các số nguyên từ 1 đến n thành một mảng con trong đó một mảng con cụ thể chứa tất cả các phần tử chứa tổng chữ số cụ thể. Sau đó, hàm sẽ kiểm tra từng mảng con và trả về độ dài của mảng con đó chứa nhiều phần tử nhất.

Ví dụ -

Nếu số đầu vào là -

const num = 15;

Sau đó, đầu ra phải là -

const output = 2;

bởi vì các nhóm -

[1, 10], [2, 11], [3, 12], [4, 13], [5, 14], [6, 15], [7], [8], [9]

Ví dụ

Sau đây là mã -

const num = 67;
const countLargestGroup = (num = 1) => {
   if(num < 10){
      return num;
   };
   let res = 0;
   let temp = 0;
   let map = {};
   for(let i = 1; i <= num; i++){
      let sum = 0;
      let num = i;
      while (num) {
         sum += num % 10;
         num = Math.floor(num / 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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

4