忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 574 | 回复: 4

小学一年级数学题 - 系列-1 [复制链接]

论坛徽章:
302
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-05-26 18:16 |显示全部楼层
本帖最后由 sunzhiguolu 于 2017-06-25 15:26 编辑

已知数据, 参见下图:


部分代码如下:
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my $base = 10;
  5. my @aNums = map {$base * $_} 1 .. 6;
复制代码

如何得出类似上图的数据结构,请大神赐教。

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
发表于 2017-05-27 04:25 |显示全部楼层
本帖最后由 rubyish 于 2017-05-27 22:07 编辑

6 ge:
  1. 10
  2. 50 60
  3. 30 40 20
  4. ________________

  5. 10
  6. 60 50
  7. 20 40 30
  8. ________________

  9. 20
  10. 40 60
  11. 30 50 10
  12. ________________

  13. 20
  14. 60 40
  15. 10 50 30
  16. ________________

  17. 30
  18. 40 50
  19. 20 60 10
  20. ________________

  21. 30
  22. 50 40
  23. 10 60 20
  24. ________________
复制代码


biru:
  1. #!/usr/bin/perl
  2. # 2017-05-26
  3. use 5.016;
  4. sub explore;

  5. my $these = [ 10, 20, 30, 40, 50, 60 ];
  6. my $THAT = 90;

  7. explore $these;

  8. # ____________________SUB____________________
  9. sub explore { E_( @_, [], 0 ) }

  10. sub E_ {
  11.     my ( $unknown, $maybe, $that ) = @_;
  12.     if ( @$unknown == 0 ) {
  13.         my $test = $that + $maybe->[0];
  14.         return if $test != $THAT;
  15.         my $ok = dosomething($maybe);
  16.         say "@$_" for @$ok;
  17.         say "________________\n";

  18.     }
  19.     for my $i ( 0 .. $#$unknown ) {
  20.         my $this = $that;
  21.         $this += $unknown->[$i];
  22.         if ( @$maybe > 0 and @$maybe % 2 == 0 ) {
  23.             next if $this != $THAT;
  24.             $this = $unknown->[$i];
  25.         }

  26.         E_( [ @$unknown[ 0 .. $i - 1, $i + 1 .. $#$unknown ] ],
  27.             [ @$maybe, $unknown->[$i] ], $this );
  28.     }
  29. }

  30. sub dosomething {
  31.     local $_ = shift;
  32.     [ [ @$_[0] ], [ @$_[ 1, 5 ] ], [ @$_[ 2, 3, 4 ] ] ];
  33. }

  34. __DATA__
  35. $_

复制代码

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
发表于 2017-05-28 01:17 |显示全部楼层
biru:
  1. #!/usr/bin/perl
  2. use 5.016;
  3. sub explore;
  4. my $these = [ 10, 20, 30 ];
  5. my $THAT = 90;

  6. explore $these;

  7. # ____________________SUB____________________
  8. sub explore { E_( @_, [] ) }

  9. sub E_ {
  10.     my ( $OK, $ok ) = @_;
  11.     if ( @$OK == 0 ) {
  12.         my @ok = map $THAT - $ok->[ $_->[0] ] - $ok->[ $_->[1] ],
  13.           [ 0, 1 ], [ 0, 2 ], [ 1, 2 ];

  14.         say $ok->[0], "\n", $ok[0], ' ', $ok[1];
  15.         say $ok->[1], ' ',  $ok[2], ' ', $ok->[2];
  16.         say '_________';
  17.     }
  18.     for my $i ( 0 .. $#$OK ) {
  19.         E_( [ @$OK[ 0 .. $i - 1, $i + 1 .. $#$OK ] ], [ @$ok, $OK->[$i] ] );
  20.     }
  21. }

  22. __DATA__
  23. $_

复制代码

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
发表于 2017-05-28 01:33 |显示全部楼层
reverse:
  1. #!/usr/bin/perl
  2. use 5.010;

  3. my @A = ( 10, 60, 20, 40, 30, 50 );
  4. Print();

  5. # ____________________SUB____________________
  6. sub Print { E_() }
  7. sub S_ { [ $A[0] ], [ @A[ 1, 5 ] ], [ @A[ 2, 3, 4 ] ] }

  8. sub R_ {
  9.     state $dir = 1;
  10.     my $num = shift;
  11.     if ( $num > 1 ) {
  12.         $num = @A - $num if $dir = !$dir;
  13.     }
  14.     @A = @A[ -1, 0 .. $#A - 1 ] for 1 .. $num;
  15. }

  16. sub E_ {
  17.     my $i = 0;
  18.     my $do = [ sub { @A = reverse @A; R_(1) }, sub { R_(2) } ];
  19.     say "@$_" for S_, ['_________'];
  20.     for ( 1 .. 5 ) {
  21.         $do->[$i]();
  22.         say "@$_" for S_, ['_________'];
  23.         $i = !$i;
  24.     }
  25. }

  26. __DATA__
  27. $_
复制代码

论坛徽章:
0
发表于 2017-06-22 15:10 |显示全部楼层
  1. my @data=(10,20,30,40,50,60);
  2. foreach  $first(@data){       #定义最上面的一个数字
  3. @data2=grep(/[^$first]/,@data);
  4. sum_eq_6(@data2);
  5. print "\n" ;
  6. }

  7. sub sum_eq_6 {       #返回左右两个角上的值
  8. my @datasub=@_;
  9. foreach my $lc(@datasub){
  10.   @datasub2=grep(/[^$lc]/,@datasub);
  11.    foreach  my $rc(@datasub2){
  12.    my $sum= ($first+$lc+$rc);
  13. if ($sum==60){
  14.     $lmc=90-$first-$lc;
  15.     $rmc=90-$first-$rc;
  16.     $lmr=90-$lc-$rc;

  17.     print "$first\n" ;
  18.     print "$lmc $rmc\n";
  19.     print "$lc $lmr $rc \n";
  20.     print "_______\n";
  21.           }
  22.     }
  23.    }
  24. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP