typescript: 用 bigint 求 Fibonacci 数列 第 n 项的数值

张开发
2026/5/30 20:26:08 15 分钟阅读
typescript: 用 bigint 求 Fibonacci 数列 第 n 项的数值
以下是使用 TypeScript : bigint 计算斐波那契数列第 n 项的脚本。支持通过命令行参数传入 n使用迭代法保证性能且避免大整数溢出。根据要求调整斐波那契数列的定义第 1 项为 1第 2 项为 1第 n 项n ≥ 1为正整数。编写脚本如下// fibonacci.ts// 使用方法// tsc fibonacci.ts node fibonacci.js n// 或 ts-node fibonacci.ts n// n 必须为正整数n 1functionfibonacci(n:bigint):bigint{if(n0n)thrownewError(n 必须为正整数n0);if(n1n)return1n;if(n2n)return1n;letprev1n;// F(1)letcurr1n;// F(2)for(leti3n;in;i){[prev,curr][curr,prevcurr];}returncurr;}functionmain(){constargsprocess.argv.slice(2);if(args.length0){console.error(错误请提供 n 值作为命令行参数);console.error(示例node fibonacci.js 10);process.exit(1);}constnStrargs[0];letn:bigint;try{nBigInt(nStr);if(n0n)thrownewError(n 必须为正整数);}catch(error){console.error(错误无效的 n 值 ${nStr}请输入一个正整数 1);process.exit(1);}try{constresultfibonacci(n);console.log(F(${n}) ${result});}catch(error:any){console.error(计算错误${error.message});process.exit(1);}}main();运行说明环境准备确保已安装 Node.js 和 TypeScriptnpm install -g typescript。编译执行tsc fibonacci.tsnodefibonacci.js100或直接使用ts-node需安装npm install -g ts-nodets-node fibonacci.ts100主要改动数列起始F(1)1,F(2)1不再定义F(0)。输入验证n必须为 1的正整数否则报错。迭代逻辑直接处理n1和n2返回1n。从i3开始循环使用prev和curr分别保存前两项最终返回curr。运行示例$ ts-node fibonacci.ts1F(1)1$ ts-node fibonacci.ts2F(2)1$ ts-node fibonacci.ts10F(10)55$ ts-node fibonacci.ts100F(100)354224848179261915075$ ts-node fibonacci.ts0错误无效的 n 值0请输入一个正整数1性能说明时间复杂度 O(n)空间复杂度 O(1)。使用bigint保证大数精度可计算第 10^6 项但输出数字巨大实际运行时间随 n 线性增长。完善的错误处理参数缺失、无效数字、负数等。

更多文章