关于FizzBuzz 问题

关于FizzBuzz 问题

 地址:http://www.cppblog.com/0and1/     |   E-Mail:[email protected]     |   QQ:79688942   |



FizzBuzz问题是一种英国学校学生经常玩的游戏。举个“FizzBuzz 问题”的例子:写一个程序打印1到100这些数字。但是遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。

首先想到用3个IF的方法:
#include  < iostream >
void main()
{
    using namespace std;
    char 
* arr[] = { " FizzBuzz " , " Fizz " , " Buzz " };
    
for  ( int  i = 1 ;i <= 100 ;i ++ )
    {
        
int  m = (i% 15 == 0 ? 0 :(i% 3 == 0 ? 1 :(i% 5 == 0 ? 2 : - 1 )));
        
if  (m! =- 1 )
            cout 
<<  arr[m]  <<  endl;
        
else
            cout 
<<  i  <<  endl;
    }
}

再网上看到一个妙用地址的:
#include  " stdio.h "
void main()
{
    
int  i = 0 ;
    
while (i < 100 )i ++ ,(i% 3 == 0 ||i% 5 == 0 )?printf( " fizz%s\n " + (i% 3 == 0 ? 0 : 4 ), " buzz " + (i% 5 == 0 ? 0 : 4 )):printf( " %d\n " ,i);
}

你可能感兴趣的:(关于FizzBuzz 问题)