用Perl解决一道高中数学题

用Perl解决一道高中数学题,第1张

概述背景:在微博上见到一道简单的数学题 ,最近一直在学Perl编程,用Perl实现之,在代码中应用了几个高级技巧,加深了对Perl数组的理解。 问题: 一个将字符串“ ABCDEFG ”变成字符串“ CDABFGE ”的置换定义为一次运算, 则从字符 “一行白鹭上青天”开始, 经过  2011  次运算后得到的字符串为  A) 一行白鹭上青天  B) 白鹭一行天上青  C) 一行白鹭天上青  D) 白

背景:在微博上见到一道简单的数学题 ,最近一直在学Perl编程,用Perl实现之,在代码中应用了几个高级技巧,加深了对Perl数组的理解。


问题: 一个将字符串“ ABCDEFG ”变成字符串“ CDABFGE ”的置换定义为一次运算,则从字符 “一行白鹭上青天”开始,经过  2011  次运算后得到的字符串为

       

Perl代码:

      #######################################        # Desc: 用Perl解一道高中数学题(函数) #         # Author: thinkhy #        # Date: 05/26/2012 Sat #        # Reference:         #######################################        use     strict    ;        use     utf8    ;        
my $str = "一行白鹭上青天" ; my @fun = ( 2 , 3 ,153)">0 ,153)">1 ,153)">5 ,153)">6 ,153)">4 ); my @tran = ( split "" , $str )[ @fun ];
my @tranArray ; push @tranArray , $str ;
while ( $str ne ( join @tran )) {      ( @tran );      @tran = @tran [ @fun ]; } binmode ( STDOUT , ':enCoding(gb2312)' ); print "\n" ,128)">@tranArray ; my $cnt = 2011 % @ tranArray ; print "\nFinal: " . $tranArray [ $cnt ] . "\n" ;


程序输出如下:

   一行白鹭上青天

白鹭一行青天上
一行白鹭天上青
白鹭一行上青天
一行白鹭青天上
白鹭一行天上青
Final: 白鹭一行青天上

   


Reference:

    1. 善科题库 http://www.mysanco.com/tiku/index.php?class=index&action=special_subject&tid=13997&rid=10

    2. 《Perl高效编程》  http://book.douban.com/subject/6146346/

总结

以上是内存溢出为你收集整理的用Perl解决一道高中数学题全部内容,希望文章能够帮你解决用Perl解决一道高中数学题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1283925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存