【中等】算法nodeJs:挑7

88 阅读1分钟

描述

你需要统计 1 到 n 之间与 7 有关的数字的个数。

与 7 有关的数字包括:
∙是 7 的倍数(如 7,14,21 等);
∙包含数字 7(如 17,27,37,⋯,70,71,72,⋯ 等)。

输入描述:

输入一个整数 n(1≦n≦3×104)。

输出描述:

输出一个整数,代表区间内与 7 有关的数字的个数。

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    line = Number(await readline());
    let arr = new Set();
    for (let i = 7; i <= line; i++) {
        if (i % 7 == 0) arr.add(i);
        else {
            let iStr = i.toString();
            for (let j = 0; j < iStr.length; j++) {
                if (Number(iStr[j]) == 7) arr.add(i);
            }
        }
    }
    console.log(arr.size);
})();