如何创建从1开始到n位最大整数结尾的数字数组?
实现方法
核心逻辑是:先计算n位的最大整数(即10^n - 1),生成从1到该整数的连续序列,再将所有数字转为字符串后拼接。以下是几种常用语言的实现:
Python 实现
def concat_numbers(n): max_num = 10 ** n - 1 return ''.join(str(i) for i in range(1, max_num + 1)) # 测试示例 print(concat_numbers(1)) # 输出 "123456789" print(concat_numbers(2)) # 输出从1到99拼接的完整字符串
这种写法用生成器表达式逐个转换数字,不会一次性占用大量内存,适合n较大的场景。
JavaScript 实现
基础拼接版
function concatNumbers(n) { const maxNum = Math.pow(10, n) - 1; let result = ''; for (let i = 1; i <= maxNum; i++) { result += i; } return result; } // 测试 console.log(concatNumbers(1)); // "123456789"
高效数组版
利用数组join减少字符串拼接的性能开销:
function concatNumbers(n) { const maxNum = Math.pow(10, n) - 1; const numArr = []; for (let i = 1; i <= maxNum; i++) { numArr.push(i); } return numArr.join(''); }
关键说明
- n位最大整数的计算:比如n=1对应9,n=2对应99,通用公式为
10^n - 1。 - 大n场景注意事项:当n≥4时,生成的字符串会非常长,建议用流式处理或生成器方式,避免内存溢出。
内容的提问来源于stack exchange,提问作者Rogestav
相关产品推荐
相关产品推荐

