免费注册 查看新帖 |

Chinaunix

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

perl 报数游戏 [复制链接]

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-14 10:53 |只看该作者 |倒序浏览
今天在网上看到个报数游戏,要求都是c,c++,java,c#完成
题目详情
一种报数游戏是从1开始连续报数,如果报到7的倍数(7,14,21,28……)或者包含数字7的数(7,17,27,37……)就用拍手代替这个数而不能报出。假设你连续听到m声拍手,问造成你听到m声拍手的第一下拍手所代表的数是几?例如,你听到了两次连续的拍手,最小的可能这两次拍手是27和28,因此输出27。

输入m, 输出这m次连续的拍手第一下所代表的最小可能的数。
我试了下用perl,不知道你们有其他方法吗?
  1. use 5.016;
  2. use strict;
  3. use warnings;
  4. print 'input m:';
  5. chomp(my $m=<STDIN>);
  6. for(my $i=7;;$i++){
  7.     my $count=0;
  8.         for my $j(0..$m-1){
  9.            my $shu=$i+$j;
  10.            $count++ if co($shu);
  11.         }
  12.         say $i and exit if $count==$m;
  13.     }
  14. sub co
  15. {
  16.   my $i=shift;
  17.   return $i  if($i%7==0 || $i=~/7/g);
  18. }
复制代码

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
2 [报告]
发表于 2014-02-14 14:28 |只看该作者
拍拍手~谢谢~这个必须赞一个~{:2_172:}

论坛徽章:
0
3 [报告]
发表于 2014-02-14 15:08 |只看该作者
本帖最后由 uiojkl227 于 2014-02-14 15:09 编辑

#!/usr/bin/perl -w
use strict;
use 5.010;

my $m =1;
my $n =1;
our $count = 1;

while (1) {
       
        $m = $count unless $count %7;
        $n = $count if $count =~ '7';

        if ($m-$n == 1 or $m-$n == -1) {

                say "i found $m, $n";
        }

        $count++;
}


这样可以吗?

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
4 [报告]
发表于 2014-02-14 15:42 |只看该作者
不是题目要求的结果吧回复 3# uiojkl227


   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
5 [报告]
发表于 2014-02-14 20:07 |只看该作者
本帖最后由 yestreenstars 于 2014-02-14 20:49 编辑
  1. chomp( my $m = <STDIN> );
  2. my ( $last, $count, $first );
  3. for ( my $i = 7; ; $i++ ) {
  4.         if ( $i % 7 == 0 || $i =~ /7/ ) {
  5.                 if ( $last && $i - $last == 1 ) {
  6.                         print $first and exit if ++$count == $m;
  7.                         $first = $i if $count == 1;
  8.                         $last = $i and next;
  9.                 }
  10.         }
  11.         $last = $i and $count = 0;
  12. }
复制代码

论坛徽章:
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
6 [报告]
发表于 2014-02-15 19:45 |只看该作者
这个有意思~
  1. #!/usr/bin/perl

  2. my $m = do { print 'input m: '; <> };
  3. loop: for ( my $i = 7 ; ; $i++ ) {
  4.     for ( reverse $i .. $i + $m - 1 ) {
  5.         $i = $_ and next loop unless $_ % 7 == 0 || /7/;
  6.     }
  7.     print $i and last;
  8. }
复制代码

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
7 [报告]
发表于 2014-02-17 10:10 |只看该作者
默默的点个赞 回复 5# yestreenstars


   

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
8 [报告]
发表于 2014-02-17 10:11 |只看该作者
本帖最后由 只是一个红薯 于 2014-02-17 10:14 编辑

new style 除了计数还可以 for ( reverse $i .. $i + $m - 1 )回复 6# rubyish


   
sinian126 该用户已被删除
9 [报告]
发表于 2014-02-18 11:02 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP