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. PO/PI

    典型集成场景 PI总体架构 消息映射 General Concepts(通用概念) 映射编辑器 元素 分配源/目标消息类型 有3种消息类型可分配给消息映射 1.使用已经存在于IR中的对象(比如消息类型 ...

  2. [Vs和Reshaper]Vs Studio配合Resharper插件,某些快捷键无法使用的情况,Alt+F7

    一直使用Alt+F7来查找变量或者类型的使用位置 家里面的电脑某一天不可以用了,按了没有任何反应 后来查到竟然是被别的软件快捷键覆盖了 Alt+F7是被Nvidia GeForce覆盖了,关掉它或者修 ...

  3. MySQL安装最后一步无响应解决方法

    一.卸载及安装 MySQL安装到最后一步就卡住,如图: 卸载原来安装的MySQL1.首先,卸载MySQL:2.然后,删除C盘下(C:\ProgramData\MySQL)文件: 然后重新安装MySQL ...

  4. python连接数据库系列

    1.Python连接MySQL 具体详情参考:MySQL笔记 Python连接MySQL需要借助pymysql,安装pymysql pip install pymysql 1.1 pymysql连接数 ...

  5. plc扫描周期

  6. mysql拼接多条字段

    转 未合并情况 SELECTa.id,b.name AS "role"FROM sys_user aINNER JOIN sys_user_role c ON a.id=c.use ...

  7. MYSQL 5.7及以上【ONLY_FULL_GROUP_BY】报错和解决方法

    由于同事安装的Docker,就在docker上举例子吧,和非docker的操作方式都一样,只是路径上和重启方式可能不同 1,进入容器 docker exec -it xxxx(你的mysql容器名称) ...

  8. 关于certutil的探究-文件下载+编码分块上传上传文件再合并

    何为certutil certutil.exe 是一个合法Windows文件,用于管理Windows证书的程序. 微软官方是这样对它解释的: Certutil.exe是一个命令行程序,作为证书服务的一 ...

  9. PHP_工厂模式

    实例化类,先需要引入类文件,但是有时候我们并不知道可能要用到那些类,如果将所有类文件全部引入,会造成资源浪费,这时候可以采用工厂模式,专门用于 自动加载.实例化 类. 实例代码: 注:案例中假设有一个 ...

  10. 思科数据中心CCIE v3.0考试内容

    考试内容: CCIE DC LAB V3.0 考试内容 1 Design 30 + 选择,拖图及勾选题 2 Deploy&Operate&Optimize 1 套 含3部分 备考安排: ...