我正在尝试编写一个简单的perl脚本来学习Perl。这是我用户输入编写的第一个脚本。脚本需要在make添加功能后获取最后一个数字任何帮助将不胜感激。以下是我到目前为止的情况。
示例用户输入9423,然后脚本添加功能如下
09 + 04 = 13
04 + 02 = 06
02 + 03 = 05
03 + 09 = 12
print "Enter 4 Digits Number";#9423
chomp($number = <STDIN>);
编辑
如何选择最后2位数字,结果为3652
#!/usr/bin/perl
my @nums = ("9423" =~ /(\d{1})/g);
my $a = $nums[0];
my $b = $nums[1];
my $c = $nums[2];
my $d = $nums[3];
my $ab= $a+$b;
my $bc= $b+$c;
my $cd= $c+$d;
my $da= $d+$a;
printf "%02d\n%02d\n%02d\n%02d\n", $ab, $bc, $cd, $da;
答案 0 :(得分:0)
最简单的方法是使用for循环和子串
编辑(现已测试):
for my $i (0 .. length($number)-2) {
print substr($number, $i, 1) + substr($number, $i+1, 1);
}
答案 1 :(得分:0)
也许以下内容会有所帮助:
use strict;
use warnings;
print "Enter a 4 Digit Number: ";
chomp( my $num = <STDIN> );
my @nums = split //, $num;
$nums[ $#nums + 1 ] = $nums[0];
( $nums[$_] + $nums[ $_ + 1 ] ) =~ /(.)$/ and print $1 for 0 .. $#nums - 1;
输入9423后的输出:
3652
答案 2 :(得分:0)
我认为,此处代码会输出您的预期结果
#!/usr/bin/perl
use warnings;
use strict;
print "Enter 4 Digits Number:";#9423
chomp(my $number = <STDIN>);
my @digits = split("", $number);
my @lasts;
# add first digit to the last position
#digits = 94239
$digits[$#digits + 1] = $digits[0];
for(my $i = 0; $i < $#digits; $i++){
$lasts[$i] = ($digits[$i] + $digits[$i + 1]) % 10;
}
print join "",@lasts,"\n";
输入编号9423后输出:
3652