m0_67010097 2022-02-25 00:09 采纳率: 100%
浏览 51
已结题

c++初学者 开关问题 代码哪里不对

本人初学者,这个代码哪里出问题,为什么运行是错的? 题目:n盏灯,编号为1~n。1号将灯全部打开,2将按下所有为2的倍数的开关,(这些灯将被关掉)第3个人按下所有编号为3的倍数的开关(该灯如为打开的, 则将它关闭;如关闭的,则将它打开)。
//以此类推,一共有m个人,最后有哪些灯开着?(m<=n<100)

img

  • 写回答

2条回答 默认 最新

  • 关注

    初始k数组的元素要全部赋值为1

    你k[x] = 1;上一行少了 for (x = 1; x <= n; x++)
    应该是

    for (x = 1; x <= n; x++)
    k[x] = 1;

    你题目的解答代码如下:

    #include<iostream>
    using namespace std;
    
    int main()
    {
        int m,n,i,x;
        int k[100];
        cin >> n >> m;
        for (x = 1; x <= n; x++)  //加上这个for
            k[x] = 1;
        for (i = 1; i <= m; i++)
        {
            for (x = 1; x <= n; x++)
            {
                if (x%i==0)
                {
                    k[x] = (-1)*k[x];
                }
            }
        }
        for (x = 1; x <= n; x++)
        {
            if (k[x]==-1)
            {
               cout << x << '\t';
            }
        }
    
        return 0;
    }
    

    img

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 已采纳回答 2月27日
  • 创建了问题 2月25日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度