#!/usr/bin/perl
use bignum;
$line = <STDIN>;
( $arr[0], $arr[1], $n ) = split( / /, $line );
$i = 2;
sub func {
while ( $i < $n ) {
$t = $arr[ $i - 1 ];
$arr[$i] = $arr[ $i - 1 ] * $arr[ $i - 1 ] + $arr[ $i - 2 ];
$i = $i + 1;
}
return $arr[ $i - 1 ];
}
print func;
当我为$ arr [1]设置手动值时,bignum工作正常但是当从STDIN获取值时,它将被打印为整数而不是BIGINt。任何人都可以解释为什么会这样。
答案 0 :(得分:2)
在数字上下文中使用字符串时,perl会使用C库的atof()
转换它们。 bignum
不会更改此设置。如果您希望以不同方式转换字符串,我建议Math::BigFloat->new
或Math::BigInt->new
。