Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một số, chẳng hạn như n. Hàm sẽ đếm các chữ cái trong tên số từ 1 đến n.
Ví dụ - Nếu n =5;
Khi đó các số là một, hai, ba, bốn, năm và tổng số chữ cái là 19, do đó đầu ra sẽ là 19.
Ví dụ
const sumUpto = (num = 1) => { let sum = 0; const lenHundred = 7; const lenThousand = 8; const lenPlaceOnes = [0,3,3,5,4,4,3,5,5,4]; const lenPlaceTens = [0,3,6,6,5,5,5,7,6,6]; for (let i = 1; i <= num; i++) { let placeOnes = i % 10; let placeTens = Math.floor(i / 10) % 10; let placeHundreds = Math.floor(i / 100) % 10; let placeThousands = Math.floor(i / 1000) % 10; sum += lenPlaceOnes[placeOnes]; sum += lenPlaceTens[placeTens]; if (placeHundreds != 0) { sum += lenHundred + lenPlaceOnes[placeHundreds]; } if (placeThousands != 0) { sum += lenThousand + lenPlaceOnes[placeThousands]; } if (placeTens === 1) { switch (placeOnes) { case 4: case 6: case 7: case 9: sum += 1; break; } } if (i > 100 && i % 100 != 0) { sum += 3; } } return sum; } console.log(sumUpto(12)); console.log(sumUpto(5)); console.log(sumUpto(122));
Đầu ra
Điều này sẽ tạo ra kết quả sau -
51 19 1280