免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5145 | 回复: 20
打印 上一主题 下一主题

已经解决.结贴 怎么得到这样的结果 [复制链接]

论坛徽章:
307
程序设计版块每周发帖之星
日期: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
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-02-01 23:01 |只看该作者 |倒序浏览
本帖最后由 sunzhiguolu 于 2016-02-02 01:52 编辑

有一个数字:  123456 希望得到这样的一个结果:12, 123, 1234, 12345, 123456.
有什么简单的方法, 谢谢大家.

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2016-02-01 23:17 |只看该作者
回复 1# sunzhiguolu


    真喜欢短代码,建议学学 APL,绝对能让你满意

论坛徽章:
307
程序设计版块每周发帖之星
日期: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
3 [报告]
发表于 2016-02-01 23:27 |只看该作者
回复 2# MMMIX
大神您误会我的意思了, 我只是看了一个帖子的内容, 才有此一问. (如果不精简代码的话, 要想得到结果的话估计代码会很长)

   

论坛徽章:
307
程序设计版块每周发帖之星
日期: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
4 [报告]
发表于 2016-02-01 23:31 |只看该作者
本帖最后由 sunzhiguolu 于 2016-02-01 23:32 编辑

回复 2# MMMIX
内容要求:
一个 9 位的整数,1-9 的数字,每个数字 只能出现一次
其中
前 2 位能被 2 整除
前 3 位能被 3 整除
前 4 位能被 4 整除
依次类推.........
前 9 位能被 9 整除

这一个整数 = 381654729

就是这个问题, 不知您如何解?

   

论坛徽章:
307
程序设计版块每周发帖之星
日期: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
5 [报告]
发表于 2016-02-02 01:53 |只看该作者
本帖最后由 sunzhiguolu 于 2016-02-02 02:05 编辑

@MMMIX
谢谢您的参与, 谢谢!
部分结果如下:

  1. 381654720
  2. 381654729
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [报告]
发表于 2016-02-02 07:42 |只看该作者
回复 3# sunzhiguolu

>>有一个数字:  123456 希望得到这样的一个结果:12, 123, 1234, 12345, 123456.
>>有什么简单的方法, 谢谢大家.
   
What You Think Is What You Code
1. using substr function get the answer easily and directly
$ perldoc -f substr
    substr EXPR,OFFSET,LENGTH,REPLACEMENT
    substr EXPR,OFFSET,LENGTH
    substr EXPR,OFFSET


2. split it and combine them
   split 123456 =>  1,2,3,4,5,6
   combination(join)
   combine 1,2 =>12
   combine 1,2,3 =>123
   ...
   combine 1,2,3,...,6 =>123..6

论坛徽章:
307
程序设计版块每周发帖之星
日期: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
7 [报告]
发表于 2016-02-02 08:59 |只看该作者
本帖最后由 sunzhiguolu 于 2016-02-02 08:59 编辑

更正一处我上面代码的错误:
一个 9 位的整数,1-9 的数字,每个数字 只能出现一次

论坛徽章:
307
程序设计版块每周发帖之星
日期: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
8 [报告]
发表于 2016-02-02 09:07 |只看该作者
本帖最后由 sunzhiguolu 于 2016-02-02 10:05 编辑

回复 6# jason680
非常感谢您的指点...
   

论坛徽章:
307
程序设计版块每周发帖之星
日期: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
9 [报告]
发表于 2016-02-02 09:20 |只看该作者
本帖最后由 sunzhiguolu 于 2016-02-02 09:34 编辑

回复 6# jason680
对了, 刚才忽略了一个问题向您请教:
比如:
1.> grep {...} map {...} @aList

2.> map {...} @aList
第一种方式是否占用的资源会更多一些, 另外, 如果第一种代码相对比较简单, 这种情况下我该如何进行取舍? 还请您指点, 谢谢. (不知道我是否将问题描述清楚)


   

论坛徽章:
307
程序设计版块每周发帖之星
日期: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
10 [报告]
发表于 2016-02-02 10:32 |只看该作者
本帖最后由 sunzhiguolu 于 2016-02-02 10:43 编辑

回复 6# jason680
大神您好, 刚才我有点不礼貌了, 请您见谅.
code-1:

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. for (my $i = 1_0000_0000; $i < 10_0000_0000; $i++){
  5.     next if ($i =~ tr/0//);
  6.     my %hUniq = map {$_, 0} (1 .. 9);
  7.     if (not grep {++$hUniq{$_} > 1} split //, $i){
  8.         unless (grep {$_ % length ($_) != 0} map {substr ($i, 0, $_)} (2 .. length ($i))){    #here code
  9.             print "$i\n";
  10.         }
  11.     }
  12. }
复制代码
code-2:

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. for (my $i = 1_0000_0000; $i < 10_0000_0000; $i++){
  5.     next if ($i =~ tr/0//);
  6.     my %hUniq = map {$_, 0} (1 .. 9);
  7.     if (not grep {++$hUniq{$_} > 1} split //, $i){
  8.         unless (map {my $sNum = substr ($i, 0, $_); if ($sNum % length ($sNum) != 0) {$sNum} else {()}} (2 .. length ($i))){    #here code
  9.             print "$i\n";
  10.         }
  11.     }
  12. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP