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

Tìm số Gapful gần nhất trong JavaScript

Số Gapful thỏa mãn:

  • Có ít nhất 3 chữ số
  • Chia hết cho số ghép từ chữ số đầu và cuối

Ví dụ: 1053 chia hết cho 13 (1 và 3), 135 chia hết cho 15.

Viết chương trình trả về số Gapful gần nhất với số nhập vào. Với số 2 chữ số → 100, với 103 → 105.

Chia thành 2 hàm:

Hàm isGapful()

const isGapful = (numStr) => {    const int = parseInt(numStr);    return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0; };

Hàm nearestGapful()

const nearestGapful = (num) => {    if(typeof num !== 'number'){       return -1;    }    if(num <= 100){       return 100;    }    let prev = num - 1, next = num + 1;    while(!isGapful(String(prev)) && !isGapful(String(next))){       prev--;       next++;    };    return isGapful(String(prev)) ? prev : next; };

isGapful() kiểm tra trong O(1), nearestGapful() lặp cho đến khi tìm thấy.

Ví dụ hoàn chỉnh

const n = 134; const isGapful = (numStr) => {    const int = parseInt(numStr);    return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0; }; const nearestGapful = (num) => {    if(typeof num !== 'number'){       return -1;    }    if(num <= 100){       return 100;    }    let prev = num - 1, next = num + 1;    while(!isGapful(String(prev)) && !isGapful(String(next))){       prev--;       next++;    };    return isGapful(String(prev)) ? prev : next; }; console.log(nearestGapful(n));

Kết quả

Đầu ra console:

135