100盏灯开关问题——C语言 有编号1~100个灯泡,起初所有的灯都是灭的。有100个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭的,按过开关之后灯会亮。 现在开始按开关。 第1个同学,把所有的灯泡开关都按一次(按开关灯的编号: 1,2,3,...100)。 第2个同学,隔一个灯按一次(按开关...
第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。 请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用...
include "stdio.h"int main(int argc,char *argv[]){char lmp[5001];int i,j,N,M;printf("Please enter N & M(int 0<N<5001, 0<M<=N)...\n");if(scanf("%d%d",&N,&M)!=2 || N<1 || N>5000 || M<1 || M>N){//保证输入的N,M符合要求,否则退出printf("Input e...
a数组中数值为0代表灯亮,1代表灯灭 开始全亮,无论后面几个人,他么的操作都是将原来的状态取反 完全可以用逻辑操作,这里就有1-a[j]来充当取反1-0=1,1-1=0 最后输出,灯灭就是判断a[j]==1
【题目】C语言开灯问题找错描述 有n盏灯,编号 $$ 1 \sim n 。 $$,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后由哪些灯开着?输入n和k,$$ 1 \leq k...
基于单片机(C语言控制) 89C51与8个发光二极管相连实现一开关花样流水控制程序设计及Proteus仿真实例 一、源程序代码: #include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char sbit key=P2^0; void delay(uint x)...
一个开关灯的c语言问题。。。没有思路~ 一个开关灯的c语言问题。。。没有思路~述 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。 第一个人(1号)将灯全部关闭,第二个人(2号)将
应该改为:int a[6000];for(i=0;i<6000;i++)a[i]=1;2、第二层循环里:if(a[j]==0)a[j]=1;if(a[j]==1)a[j]=0;这个语句把所有的灯都关闭了,因为如果关了,就打开;打开后又关了。逻辑不对,改成:if(a[j]==0)a[j]=1;else a[j]=0;这样就没问题了。
sbit B2=P2^1;sbit LED=P1^1;void delay(){ unsigned int a=3000;while(a--){ ;} } void delay1(){ unsigned int a=2000;while(a--){ ;} } main(){ while(1){ if(B1==0){ delay1();if(B1==0){ LED=1;} } if(B2==0){ delay1();if(B2==0){ LED=0;} } } ...
summ += 1 # 统计当前灯泡序号可以被多少个数整除 if summ % 2 == 1: sheet.append(str(i)) # 如果数量为奇数,最终为关闭状态,添加进列表 print(','.join(sheet)) # 列表不带方括号输出 C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解: ...