雅痞6 2023-02-03 12:39 采纳率: 81%
浏览 29
已结题

洛谷开灯问题,出现问题

问题遇到的现象和发生背景 在一条无限长的路上,有一排无限长的路灯,编号为 1,2,3,4,\dots1,2,3,4,…。

每一盏灯只有两种可能的状态,开或者关。如果按一下某一盏灯的开关,那么这盏灯的状态将发生改变。如果原来是开,将变成关。如果原来是关,将变成开。

在刚开始的时候,所有的灯都是关的。小明每次可以进行如下的操作:

指定两个数,a,ta,t(aa 为实数,tt 为正整数)。将编号为 \lfloor a\rfloor,\lfloor 2 \times a\rfloor,\lfloor3 \times a\rfloor,\dots,\lfloor t \times a\rfloor⌊a⌋,⌊2×a⌋,⌊3×a⌋,…,⌊t×a⌋ 的灯的开关各按一次。其中 \lfloor k \rfloor⌊k⌋ 表示实数 kk 的整数部分。

在小明进行了 nn 次操作后,小明突然发现,这个时候只有一盏灯是开的,小明很想知道这盏灯的编号,可是这盏灯离小明太远了,小明看不清编号是多少。

幸好,小明还记得之前的 nn 次操作。于是小明找到了你,你能帮他计算出这盏开着的灯的编号吗?

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include<stdio.h>
#include<math.h>
int s[2000000]={0};
int main()
{
    int t,i,j,n,cnt=0;
    double a;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    scanf("%lf %d",&a,&t);
    for(j=1;j<=t;i++)
    {
        int zh=(int)(a*j);
        s[zh]=1;
    }
 }
 for(i=0;i<200000;i++)
    {
        if(s[i]==0){
        printf("%d\n",i);
        break;
    }
}
}

运行结果及详细报错内容 输入第一组数据后无法继续输入;
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60% 暴力解题
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2023-02-03 13:06
    关注

    for(j=1;j<=t;i++)
    改为
    for(j=1;j<=t;j++)

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥18 模拟电路问题解答有偿
  • ¥15 Matlab在app上输入带有矩阵形式的初始条件发生错误
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题