援引http://news.youkuaiyun.com/n/20070305/101739.html的文章,举个“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;
}
今天偶然看到了”FizzBuzz“问题,上面是我的一点小小思考,欢迎大家交流探讨。
本文提供了一个解决经典编程问题“FizzBuzz”的C语言实现方案。通过巧妙地使用步长计数代替传统求余运算,该程序有效地打印出了1到100之间的Fizz、Buzz及FizzBuzz。此外还统计了各自的出现次数。
1165

被折叠的 条评论
为什么被折叠?



