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

来源:互联网 发布:最新美化照片软件 编辑:程序博客网 时间:2024/06/05 01:51

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


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;}