#!/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;当我为$arr1设置手动值时,bignum运行良好,但是当从STDIN获取值时,它将被打印为整数,没有BIGINt。有人能解释为什么会发生这种事吗。
发布于 2014-12-01 19:57:04
在数字上下文中使用字符串时,perl使用C库的atof()来转换字符串。这一点没有被bignum所改变。如果希望以不同的方式转换字符串,我建议使用Math::BigFloat->new或Math::BigInt->new。
https://stackoverflow.com/questions/27235863
复制相似问题