您的位置:首页 > 其它

由FizzBuzz游戏感触到的动手编码能力的重要性!

2017-12-01 09:59 337 查看
这几天在逛群里老大李沐(沐神)的博文专栏时,除了感叹沐神神一样的经历外,更是对沐神博文带出的一些问题感慨良多,网络搜了一把,面对问题的差人的思维能力权做自省!!!

FizzBuzz设这样的一个游戏:



引子:
https://www.cnblogs.com/webary/p/6507413.html
沐神专栏:
https://zhuanlan.zhihu.com/p/29100405
加法求模:
http://blog.csdn.net/ixidof/article/details/7697173
结合两种方法的FizzBuzz问题:

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

void printFizzBuzz1(int num = 100)
{
for (int i = 1; i <= num; ++i)
{
if (i % 3 == 0){
printf("%d: Fizz", i);
if (i % 5 == 0){
printf("Buzz\n", i);
}
else
{
printf("\n");
}
}
else if (i % 5 == 0){
printf("%d: Buzz\n", i);
}
else
{
printf("%d: neither Fizz nor Buzz\n", i);
}
}
}

void printFizzBuzz2(int num = 100)//特点,将求模运算变为加法运算
{
int i;
int Step3 = 1, Step5 = 1;/*步长计数*/
int FizzStat = 0, BuzzStat = 0, FizzBuzzStat = 0;

for (i = 1; i <= 100; i++)
{
if ((3 == Step3) && (5 == Step5))
{
printf("%d: FizzBuzz\n", i);
Step3 = 1;
Step5 = 1;
FizzStat++;
BuzzStat++;
FizzBuzzStat++;
}
else if (3 == Step3)
{
printf("%d: Fizz\n", i);
Step3 = 1;
Step5++;
FizzStat++;
}
else if (5 == Step5)
{

printf("%d: Buzz\n", i);
Step3++;
Step5 = 1;
BuzzStat++;
}
else
{
printf("%d: not Fizz Buzz\n", i);
Step3++;
Step5++;
}

}

printf("total Fizz = %d, total Buzz = %d, total FizzBuzz = %d\n", FizzStat, BuzzStat, FizzBuzzStat);
}

int main(int argc, char* argv[])
{
printf("------大众方法------:\n");
printFizzBuzz1(100);

printf("------创新方法------:\n");
printFizzBuzz2(100);

return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编码 FizzBuzz