美文网首页
自用perl6libs更新

自用perl6libs更新

作者: 台_f0ff | 来源:发表于2019-08-09 12:33 被阅读0次

```

my @a = <-1 1 2 3 4 5 6 7 8 9>;

#2019-8-9 waylandmy t/a sina.com

#定义多行文本

my str $linesstr = "line1

line2

line3"

#say $linesstr;

say arr2linecount(@a,2);

#一维数组的二维用法

sub arr2getline(@a, int $len, int $lineid){

my $i = ($lineid - 1) * $len + 1;

my @b[$len + 1];

my $j = 1;

#从索引1开始复制

while $i <= ($lineid * $len) {

@b[$j] = @a[$i]; $i += 1; $j += 1;

}

return @b; #b[0] = 未定义

}

sub arr2getv(@a, int $len, int $lineid,  int $horid){

#参数说明:数组,第几行,该行的第几个

my int $pi = ($lineid - 1) * $len + $horid;

return @a[$pi];

}

sub arr2linecount(@a, int $len) {

#返回行数

my $pc = (@a.elems -1) / $len;

if ($pc != $pc.Int ) { $pc = $pc.Int + 1;} #取整

return $pc;

}

sub gyue($a, $b) {

#求最大公约数

my int $gy = 1;

my $ai = $a; my $bi = $b;

if ($b > $a) {$ai = $b; $bi = $a;}

while 1 {

while $ai > $bi { $ai -= $bi; }

if ($ai == $bi) { $gy = $bi; last; } else {

($ai, $bi) = ($bi, $bi - $ai);

if ($bi == 1) { $gy = 1; last; }

}

}

return $gy;

}

sub gprimear($n) {

#perl6求质数数组

my int @ar = < -1 2>; #索引从1开始

my int $i = 2; my int $isprime = 1; #-1表示可被整除,1表示不可被整除

my int $ji = 1;  my int $ja = 0;

while $i <= $n {

$ji = 1; $isprime = 1; $ja = @ar[$ji];

while $ja < ($i**0.5 + 1) and $ji < @ar.elems { if ($i % $ja == 0) { $isprime = -1; last; } else { $ji += 1; $ja = @ar[$ji];  } }

if ($isprime == 1) { @ar.push: $i; }

$i += 1;

}

#say @ar;

return @ar;

say @ar.elems - 1; #质数个数

}

```

相关文章

网友评论

      本文标题:自用perl6libs更新

      本文链接:https://www.haomeiwen.com/subject/stncjctx.html