perl:BigInt 计算 斐波那契数列

use Math::BigInt; 计算 斐波那契数列(Fibonacci sequence),不受长整型位数限制。

编写 fibonacci.pl 如下

perl 复制代码
#!/usr/bin/perl
use strict;
use warnings;
use Math::BigInt;
sub bigint { Math::BigInt->new(shift); }

# 定义一个子程序来计算Fibonacci数列的第n个数字
sub fibonacci {
    my ($n) = @_;
    my $x = bigint(0);
    my $y = bigint(1);
    while($n >0){
        ($x, $y) = ($y, $x+$y);
        $n--;
    }
    return $x
}
 
# 获取用户输入
print "请输入一个正整数: ";
chomp(my $n = <STDIN>);
 
# 检查输入是否为正整数
if ($n !~ /^\d+$/) {
    print "错误:输入必须是正整数。\n";
    exit 1;
}
 
# 计算并输出Fibonacci数列的第n个数字
my $number = fibonacci(int($n));
print "fibonacci($n)= $number\n";
#print "Fibonacci数列的第$n个数字是: $number\n";

运行 perl fibonacci.pl

请输入一个正整数: 365

fibonacci(365)= 8531073606282249384383143963212896619394786170594625964346924608389878465365

用 python 校验,以上结果正确:

python fibonacci.py 365

fib1(365)= 8531073606282249384383143963212896619394786170594625964346924608389878465365

相关推荐
hid711713661 天前
基于RISC-V指令集的五级流水线CPU设计、验证及上板实践:详细说明与代码注释完备
perl
沟通qq 8762239651 天前
基于改进A*算法的单agv路径规划算法仿真 可以更改地图,起始点,目标点 % 1 表示障碍物 ...
perl
添加shujuqudong1如果未回复5 天前
出一个已配置参数的18650圆柱锂电池COMSOL模型用于生热研究
perl
无名3878 天前
RTPEngine 官方自带的 perl 测试程序
开发语言·perl·通信
IT_阿水9 天前
基于STM32的智慧物联网系统板
stm32·物联网·perl
G***T69118 天前
GitGraphQL案例
pycharm·perl·etl
原神启动120 天前
云计算大数据——shell教程(三剑客之awk)
大数据·开发语言·perl
java_logo1 个月前
PERL Docker 容器化部署指南
linux·运维·docker·容器·eureka·centos·perl
趣味编程1112 个月前
go的学习2---》并发编程
学习·golang·perl
风语者6662 个月前
perl踩坑系列===正则表达式第2坑---split中的“或”操作符
开发语言·正则表达式·perl