我对FizzBuzz问题的小小思考

援引的文章,举个“FizzBuzz”问题的例子:

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

#include <stdio.h>#include <stdlib.h>int main(){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);return 0;}

使用步长计数代替了对每个数的多次求余操作,程序的统计结果:total Fizz = 33, total Buzz = 20, total FizzBuzz = 6。

今天偶然看到了”FizzBuzz“问题,上面是我的一点小小思考,欢迎大家交流探讨。

版权声明:本文为博主原创文章,未经博主允许不得转载。

也许不是自己该去发挥的地方,还是让自己到最适合自己战斗的方面去吧!勇敢的接受自己的失败,

我对FizzBuzz问题的小小思考

相关文章:

你感兴趣的文章:

标签云: