Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การนับจำนวนเลข 1 จนถึง n ใน JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับจำนวนเต็มบวก num ฟังก์ชันต้องนับจำนวนเลข 1 ทั้งหมดที่ปรากฏในจำนวนเต็มบวกทุกตัวจนถึง n (รวม n ถ้ามีเลข 1) แล้วคืนค่าจำนวนนั้น

ตัวอย่าง

ถ้าตัวเลขนำเข้าคือ:

const num = 31;

ผลลัพธ์ควรเป็น:

const output = 14;

เพราะเลข 1 ปรากฏใน:

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

ตัวอย่างโค้ด

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

ผลลัพธ์

14