V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mingyun
V2EX  ›  程序员

全栈工程师 之 FizzBuzz

  •  
  •   mingyun · 2017-05-26 22:47:28 +08:00 · 1864 次点击
    这是一个创建于 2738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看到 ruby-china 上一文量产型炮灰工程师 来讨论下 经典面试题 FizzBuzz 的解法,不限语言

    输出数字 1-100,逢 3 的整倍数输出 Fizz,逢 5 的整倍数输出 Buzz,又是 3 又是 5 的整倍数输出 FizzBuzz

    先来 PHP 吧,还有更好的请留言。

    <?php
    
    for ($i = 1; $i <= 100; $i++) {
         if($i % 15 == 0){
             echo 'FizzBuzz'.PHP_EOL;
             continue;
         }
         if($i % 3 == 0) {
             echo 'Fizz';
         } elseif($i % 5 == 0) {
            echo 'Buzz';
         } else {
    	  echo $i;
         }
    	 
         echo PHP_EOL;
         
     }
     
     1
    2
    Fizz
    4
    Buzz
    Fizz
    7
    8
    Fizz
    Buzz
    11
    Fizz
    13
    14
    FizzBuzz
    16
    17
    Fizz
    19
    Buzz
    Fizz
    22
    23
    Fizz
    Buzz
    26
    Fizz
    28
    29
    FizzBuzz
    31
    32
    Fizz
    34
    Buzz
    Fizz
    37
    38
    Fizz
    Buzz
    41
    Fizz
    43
    44
    FizzBuzz
    46
    47
    Fizz
    49
    Buzz
    Fizz
    52
    53
    Fizz
    Buzz
    56
    Fizz
    58
    59
    FizzBuzz
    61
    62
    Fizz
    64
    Buzz
    Fizz
    67
    68
    Fizz
    Buzz
    71
    Fizz
    73
    74
    FizzBuzz
    76
    77
    Fizz
    79
    Buzz
    Fizz
    82
    83
    Fizz
    Buzz
    86
    Fizz
    88
    89
    FizzBuzz
    91
    92
    Fizz
    94
    Buzz
    Fizz
    97
    98
    Fizz
    Buzz
     
    
    第 1 条附言  ·  2017-05-26 23:42:43 +08:00
    for ($i = 1; $i <= 100; $i++) { 
    	//if ($i % 15 != 0) {
    	if ($i % 3 != 0 and $i % 5 != 0) {
    		 echo $i;
    	} 
    	if ($i % 3 == 0) {
    		echo "Fizz";
    	}
    	if ($i % 5 == 0) {
    		echo "Buzz";
    	}
    	echo PHP_EOL;
    }
    
    3 条回复    2017-05-28 21:21:02 +08:00
    Mountain
        1
    Mountain  
       2017-05-27 08:38:37 +08:00
    linus3389
        2
    linus3389  
       2017-05-27 15:24:56 +08:00
    for x in range(100):print([x+1,'Fizz','Buzz','FizzBuzz'][0x30490610>>x%15*2&3])
    mingyun
        3
    mingyun  
    OP
       2017-05-28 21:21:02 +08:00
    @linus3389 厉害了,我的哥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2712 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:08 · PVG 19:08 · LAX 03:08 · JFK 06:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.