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

Đếm số lượng từ 1 đến n trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một số nguyên dương, chẳng hạn như num.

Nhiệm vụ của hàm của chúng ta là đếm tổng số số 1 xuất hiện trong tất cả các số nguyên dương cho đến n (kể cả n, nếu nó chứa bất kỳ số 1 nào).

Sau đó, hàm cuối cùng sẽ trả về số lượng này.

Ví dụ -

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

const num = 31;

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

const output = 14;

bởi vì 1 xuất hiện trong,

1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 31

Ví dụ

Sau đây là mã -

const num = 31;
const countOnes = (num = 1) => {
   if(num <= 0 ){
      return 0
   };
   let sum = 0
   num += '';
   let helper = p => {
      let leftNum = 0
      let rightNum = 0
      let di = num[p]
      if(p>0){
         leftNum = parseInt(num.slice(0,p))
      }
      if(p+1 < num.length){
         rightNum = parseInt(num.slice(p+1))
      }
      if(di > 1){
         sum += (leftNum+1)*(10**(num.length-1-p))
      } else if(di == 0){
         sum += (leftNum)*(10**(num.length-1-p))
      } else{
         sum += (leftNum)*(10**(num.length-1-p)) + rightNum + 1
      }
   }
   for(let i =0; i < num.length; i++){
      helper(i)
   };
   return sum;
};
console.log(countOnes(num));

Đầu ra

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

14