喊7的次数重排js实现
喊7的次数重排js实现
要实现喊7的次数重排功能,可以理解为统计数字中包含7或能被7整除的次数,并按顺序输出这些数字。以下是几种实现方法:
方法一:基础遍历法
function countSevens(n) {
let result = [];
for (let i = 1; i <= n; i++) {
if (i % 7 === 0 || i.toString().includes('7')) {
result.push(i);
}
}
return result;
}
方法二:优化字符串检查
function countSevens(n) {
return Array.from({length: n}, (_, i) => i + 1)
.filter(num => num % 7 === 0 || /7/.test(num));
}
方法三:递归实现
function countSevens(n, current = 1, result = []) {
if (current > n) return result;
if (current % 7 === 0 || current.toString().includes('7')) {
result.push(current);
}
return countSevens(n, current + 1, result);
}
方法四:生成器实现
function* sevenGenerator(n) {
for (let i = 1; i <= n; i++) {
if (i % 7 === 0 || i.toString().includes('7')) {
yield i;
}
}
}
function countSevens(n) {
return [...sevenGenerator(n)];
}
这些实现方法都可以输出包含7或能被7整除的数字列表。选择哪种方法取决于具体需求和性能考虑。基础遍历法简单直观,优化字符串检查法更简洁,递归实现适合函数式编程风格,生成器实现则适合处理大数据集。







