C 语言 Fizz Buzz 程序2024年8月28日 | 阅读 4 分钟 编程面试中经常会出现简单的 “Fizz Buzz” 编码 练习,以评估候选人对 循环、条件语句 和 解决问题能力 的基本理解。该程序遵循一套 规则,并根据指定的条件生成各种字符串。 Fizz Buzz 程序 的目标是反复 循环遍历 一组 整数,并应用一套 规则 来决定为每个数字输出什么。这些是规则: - 当一个数字能被 3 整除时,则输出 “Fizz”。
- 当一个数字能被 5 整除时,则输出 “Buzz”。
- 当一个数字能被 3 和 5 整除时,则输出 “FizzBuzz”。
- 如果数字不符合上述任何条件,则直接输出该数字本身。
此 Fizz Buzz 程序的代码实现输出 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz
说明 该程序将打印 1 到 100 之间的整数,对于能被 3 整除的数字,程序将输出 “Fizz”;对于能被 5 整除的数字,输出 “Buzz”;对于能同时被 3 和 5 整除的数字,输出 “FizzBuzz”。 在提供的 C 代码中,“for” 循环会反复迭代从 1 到 100 的数字。循环变量 x 从 1 开始,每次迭代增加 1,直到达到 100。循环内部,if 语句 按特定顺序检查条件: - 第一个 if 语句 使用 模运算符 (%) 检查 x 是否能被 3 和 5 整除。当 x 被一个数除时,模运算符 确定余数。如果余数为 0,则表示 x 可以被该数整除。如果 x 能被 3 和 5 整除,则打印 “FizzBuzz”。
- 第二个 else if 语句 检查 x 是否只能被 3 整除。如果 x 除以三后的余数为零,则 x 能被 三 整除,并打印 “Fizz”。
- 第三个 else if 语句 检查 x 是否只能被 5 整除。如果 x 能被 5 整除且余数为 0,则打印单词 “Buzz”。
- 如果上述条件均不成立,则执行 else 语句,并使用 printf 打印 x 本身的值。
其他一些详细信息 - 起源: Fizz Buzz 游戏的具体起源及其在编码面试中的应用并未得到充分记录。然而,它被认为最初是一个 儿童游戏,用于教授除法和数学。其作为编码练习的改编很可能源于一种评估候选人在实际场景中应用基本编程概念能力的方式。
- 常见面试题:Fizz Buzz 已成为一道经典的面试题,尤其是在软件工程和编程职位中。它的简单性使面试官能够快速评估候选人的编码技能、解决问题的思路以及编写清晰高效代码的能力。对于那些在 Fizz Buzz 上遇到困难的候选人,通常表示他们对基本编程概念的掌握较弱。
- 多种变体: 虽然基本的 Fizz Buzz 程序 遵循上述规则,但该游戏的变体涉及不同的条件和输出。例如,一些变体可能会引入额外的单词或更改触发特定输出的数字。这些变体可以使程序更具挑战性,并要求候选人进行创造性思考和调整解决方案。
- 扩展范围: 通常的 Fizz Buzz 程序迭代从 1 到 100 的数字。然而,这个范围可以很容易地调整以适应更大的或更小的序列。该程序的一些变体甚至可能接受用户输入来动态确定范围。
- 效率考虑: 尽管 Fizz Buzz 是一个相对简单的程序,但其实现仍有优化空间。例如,用户可以通过 15(3 * 5) 的 单次模运算 来合并条件,而不是对 3 和 5 的可除性执行单独的模运算。这些类型的调整可以提高程序的性能。
- Fizz Buzz 在实际应用中的体现: 尽管 Fizz Buzz 本身是一个简单的练习,但它展示了考虑多个条件并系统地应用规则的重要性。这种方法适用于各种实际场景,例如数据验证、筛选和基于规则的系统。
|