You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不修改for循环实现FizzBuzz从100到0反向输出

解决方案

要在不修改给定for循环的前提下实现从100到0的FizzBuzz输出,我们可以通过新增变量反转遍历顺序,同时修正原代码的逻辑错误,具体实现如下:

修正后的完整代码

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

int main ()
{
    int     idx;
    int     num; // 新增变量,存储反转后的数字

    for (idx=0; idx<=100; idx++)        // Do not alter this line
    {
        num = 100 - idx; // 反转数字:idx从0到100时,num从100到0

        // 修正判断顺序:先判断同时被3和5整除的情况
        if((num % 3 == 0) && (num % 5 == 0))
            printf("FizzBuzz\n");
        else if(num % 3 == 0)
            printf("Fizz\n");
        else if(num % 5 == 0)
            printf("Buzz\n");
        else
            printf("%d\n", num);
    }
}

关键修改说明

  • 反转遍历顺序:通过num = 100 - idx,将原循环的0→100转换为100→0的输出顺序,完全符合要求且不修改原循环结构。
  • 修正逻辑错误:原代码中先判断被3整除的情况,会导致同时被3和5整除的数(如15、30等)被错误输出为"Fizz"而非"FizzBuzz",调整判断顺序后,优先捕获同时满足两个条件的情况,保证逻辑正确性。

内容的提问来源于stack exchange,提问作者Ng Leng Poh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:51:53