首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

FizzBuzz 有关问题

2012-04-06 
FizzBuzz 问题刚才在csdn看到一篇文章,名为《独家:怎样用最简单的方法测试出来谁会编程谁不会编程》,里面讲

FizzBuzz 问题
刚才在csdn看到一篇文章,名为《独家:怎样用最简单的方法测试出来谁会编程   谁不会编程》,里面讲了一个FizzBuzz问题,说可以通过这个程序的编写来测试谁会编程。http://news.csdn.net/n/20070305/101739.html

“写一个程序打印1到100这些数字。但是遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。

大多数好的程序员应该可以在几分钟之内在纸上写出这个程序。令人惊讶的是,绝大多数计算机科学与技术的本科生不会。我看到有很多自学的高级程序员写出一个方案要花大于10-15分钟。””(原文引用)。
我,一个计算机本科生花了七,八分钟写了个。感觉不是很好,希望大家有更好的贴出来。

我的代码:
#include   "stdio.h "
#include   "conio.h "
main()
{
        int   i;
        for(i=1;i <101;i++)
        {
                if(i%3==0)
                  {
                        if(i%5==0)
                                printf( "FizzBuzz   ");
                        else
                                printf( "Fizz   ");
                  }
                else   if(i%5==0)
                        printf( "Buzz   ");
                else
                        ;/*Do   nothing*/

        }
        getch();
}

[解决办法]
#include <iostream.h>

int main()
{
char *BZ[] = { "FizzBuzz ", "Fizz ", "Buzz "};
for (int i=1; i <=100; ++i)
{
switch(i%15)
{
case 0:
cout < <BZ[0] < <endl;
break;
default:
switch(i%3)
{
case 0:
cout < <BZ[1] < <endl;
break;
default:
switch (i%5)
{
case 0:
cout < <BZ[2] < <endl;
break;
default:
cout < <i < <endl;
}
}
break;
}
}
return 1;
}
---------------
5分钟搞定
[解决办法]
#include <iostream.h>

int main()
{
char *BZ[] = { "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 < <BZ[m] < <endl;
}
else
{
cout < <i < <endl;
}
}
return 1;
}
来个简单的
[解决办法]
#include <stdio.h>

void main(void)
{
int i;

for(i = 1; i <= 100; i++) {
if(i % 3 == 0 && i % 5 == 0)
printf( "FizzBuzz\n ");
else if(i % 3 == 0)
printf( "Fizz\n ");
else if(i % 5 == 0)
printf( "Buzz\n ");
else
printf( "%d\n ", i);


}
}

热点排行