1 #include<stdio.h>
2 #include<stdlib.h>
3 //开灯问题
4 //总共有n盏灯,编号为1~n,k个人
5 //第一个人摁下所有灯的开关
6 //第二个人摁下所有编号为2的倍数的开关
7 //第三个人摁下所有编号为3的倍数的开关
8 //......
9 //传入k<n<1000,问最后哪些灯是开着的
10 int main()
11 {
12 ////先来看看最简单的情形:固定灯和人数
13 //int Light[10] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1 };
14 //printf("灯组初始状态为:");
15 //for (int element = 0; element < 10; element++) {
16 // printf("%d\t", Light[element]);
17 //}
18 //printf("\n");
19 //int Switch = 3;
20 ////3个人分别对灯组进行操作
21 //for (int i = 1; i < Switch + 1; i++) {
22
23 // for (int element = 0; element < 10; element++) {
24 // if ((element + 1) % i == 0) {
25 // Light[element] = -1 * Light[element];
26 // }
27 // }
28 // printf("第%d个人操作后的结果", i);
29 // for (int element = 0; element < 10; element++) {
30 // printf("%d\t", Light[element]);
31 // }
32 // printf("\n");
33 //}
34 //printf("灯组最后为:");
35 //for (int element = 0; element < 10; element++) {
36 // printf("%d\t", Light[element]);
37 //}
38
39 //-----------------------------------------
40 //-----------------------------------------
41
42 //当灯和人数均由外界指定时,这里我们采用动态数组实现
43 int LightLen;
44 int* Light;
45 printf("请输入灯组数量");
46 scanf_s("%d", &LightLen);
47 if (LightLen >= 1000 || LightLen <= 0) {
48 printf("灯组数量应该满足0<Switch<LightLen<1000!\n");
49 return 0;
50 }
51 Light = (int*)malloc(LightLen * sizeof(int));
52 if (!Light) {
53 printf("创建灯组失败\n");
54 exit(1);
55 }
56 //灯组初始状态置为1
57 for (int i = 0; i < LightLen; i++) {
58 Light[i] = -1;
59 }
60 for (int i = 0; i < LightLen; i++) {
61 printf("%d\t", Light[i]);
62 }
63 printf("\n");
64 //准备接受人数值
65 int Switch;
66 printf("请输入人数:\n");
67 scanf_s("%d", &Switch);
68 if (Switch >= 1000 || Switch <= 0) {
69 printf("人数应该满足0<Switch<LightLen<1000!\n");
70 return 0;
71 }
72 for (int i = 1; i < Switch + 1; i++) {
73
74 for (int element = 0; element < 10; element++) {
75 if ((element + 1) % i == 0) {
76 Light[element] = -1 * Light[element];
77 }
78 }
79 printf("第%d个人操作后的结果", i);
80 for (int element = 0; element < 10; element++) {
81 printf("%d\t", Light[element]);
82 }
83 printf("\n");
84 }
85 printf("灯组最后为:");
86 for (int element = 0; element < 10; element++) {
87 printf("%d\t", Light[element]);
88 }
89 //别忘了释放
90 free(Light);
91 return 0;
92 }

c语言 开灯问题 vs2019编译通过的更多相关文章

  1. c语言实现开灯问题

    开灯问题: 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依 ...

  2. 开灯问题—C语言

    开灯问题 有n盏灯,编号为1~n.第1个人把所有灯打开,第2个人按下所有编号为2的倍数开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关,以此类推.一共有k个人,问最后哪些灯是开着?输入n和 ...

  3. 开灯问题3_2(JAVA语言)

    package 第三章; public class 开灯问题3_2 { public static void main(String[] args) { // TODO Auto-generated ...

  4. 9509 开灯(dfs)

    9509 开灯 时间限制:1000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC Description 有16的开关分别控制16盏灯,开关排列成 ...

  5. Jquery开灯关灯效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. NYOJ 题目77 开灯问题(简单模拟)

    开灯问题 时间限制:3000 ms  |            内存限制:65535 KB 难度:1           描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 ...

  7. 洛谷 P1876 开灯(思维,枚举,规律题)

    P1876 开灯 题目背景 该题的题目是不是感到很眼熟呢? 事实上,如果你懂的方法,该题的代码简直不能再短. 但是如果你不懂得呢?那...(自己去想) 题目描述 首先所有的灯都是关的(注意是关!),编 ...

  8. 【Luogu1876】开灯(数论)

    [Luogu1876]开灯(数论) 题面 题目描述 首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的 ...

  9. POJ 1218 THE DRUNK JAILER(类开灯问题,完全平方数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2188 题目大意:n为5-100之间的一个数,代表有多少间牢房,刚开始所有房间打开,第一轮2的倍数的房间 ...

  10. 30个Python物联网小实验3:使用按钮开灯关灯

    使用按钮开灯关灯 接线图非常简单,LED接GPIO17号口,按钮接GPIO2号口,负极接GND地线. 代码也非常简单: from gpiozero import LED, Button from si ...

随机推荐

  1. Win10 修改系统自带字体

    文章来源: Win10怎样更改系统字体?Win10默认字体修改教程 - 系统之家 (xitongzhijia.net) 苹方字体下载,window系统专用[2021最新版]免费下载 - 知乎 (zhi ...

  2. ssm框架下的拦截器过滤静态资源以及拦截jsp

    这篇文章如果能给你带来帮助 不胜荣幸,如果有错误 ,欢迎批评指正,共同进步. 今天啊搭了一个ssm的框架 虽然说现在大部分都在使用shiro权限,可是正如mybatis.hibernate和jdbc的 ...

  3. The table‘xxxx’is full

    df -h 查看磁盘 设置 back_log = 50 接受队列,对于没建立 tcp 连接的请求队列放入缓存中,队列大小为 back_log,受限制与 OS 参数,试图设定 back_log 高于你的 ...

  4. Python的100个小技巧

    文章转自:https://mp.weixin.qq.com/s/w5do8QYMkO_gLgPupDdJqg 分享100个Python小技巧,帮助大家更好的了解和学习Python. ▍1.for循环中 ...

  5. UML 组成 1

    常用关系: 关联关系使用一条直线表示,比如  A与B关联 用于描述不同类的对象之间的结构关系,将多个类的实例联系在一起 是一种静态关系,基本与程序的运行没有关系 比如,部门与员工的关系,就是关联关系 ...

  6. QT控件使用--QPlainTextEdit

    QPlainTextEdit是一个多行文本编辑器,用于显示和编辑多行简单文本. 一些常用的函数有: appendPlainText(const QString) 向 PlainTextEdit 组件添 ...

  7. T137226 彩虹海

    设目标体系$(n,a)$和答案体系$(m,b)$分别为集合$A$和集合$B$,那么我们可以猜想$B\subseteq A$. 我们可以先通过反证法验证下面两个结论: 若$x\in A$可以被其他$A$ ...

  8. 使用Mybatis plus xml 记录过程

    <select id="selectByConditions" resultType="com.springboot.domain.DemoQueryModel&q ...

  9. go 的 wire 依赖注入

    首先安装 wire 工具 go install github.com/google/wire/cmd/wire@latest go 文件 package main import ( "fmt ...

  10. [部署日记]GO在Visual Studio Code初次运行时提示The "gopls" command is not available. Run "go get -v golang.org/x/tools/gopls" to install.

    本以为VSC在商城装上插件后就能拎包入住,F5的时候我当场好家伙 于是无脑Install... Installing github.com/nsf/gocode FAILED Installing g ...