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. Prometheus学习笔记之设置存储时间为30天不生效

    0x00 概述 Prometheus升级到2.23进行测试发现,设置存储时间为30天未生效,根据官方说明手册,实际运行后发现数据只能存储几个小时.... --storage.tsdb.retentio ...

  2. 开源 IM 系统 tinode 部署教程| WSL 环境

    背景 我们的需求是在本地部署一套 IM 系统,选择 tinode.为便于后端启动,我们采用 WSL 环境,配合 docker 安装数据库,来启动 IM 应用. 解决 WSL 启动前端和后台服务 cmd ...

  3. Web文件上传模块 Plupload

    Plupload 是一个Web浏览器上的界面友好的文件上传模块,可显示上传进度.图像自动缩略和上传分块.可同时上传多个文件. 示例代码: <!-- Load Queue widget CSS a ...

  4. MDK GCC调试

    openocd调试 https://blog.csdn.net/chunyexixiaoyu/article/details/120448515

  5. java链接pg数据库remaining connection slots are reserved for non-replication superuser connections问题

    最近遇到链接pg数据库报错:remaining connection slots are reserved for non-replication superuser connections.百度说, ...

  6. Nginx 虚拟主机中配置 server_name ⼀个server块中配置多个站点 ⼀个站点配置多个⼆级域名

    ⼀个server块中配置多个站点 server { listen 80; server_name ~^(www.)?(.+)$; index index.php index.html; root /h ...

  7. Pytest 插件

    1. 执行标记用例执行次数 首先安装 repeat: pip install pytest-repeat @pytest.mark.repeat(n)执行当前用例 n 次 然后再往下执行其他用例 im ...

  8. Mysql之迂回连接术

    转载请注明来源:https://www.cnblogs.com/Sherlock-L/p/14932870.html 关键词:OmniDB.Mysql Router 背景:项目的测试数据库放在了生产机 ...

  9. Spark 中三种数据处理对象的区别: RDD-Dataset-Dataframe

    1,对比表:   RDD Dataframe Dataset 版本 1.0 1.3 1.6 描述 分布式数据集合 行列化的分布式数据集合  RDD 和 DataFrame的结合 数据格式 结构化和非结 ...

  10. elasticsearch 排错总结

    控制台乱码 修改elasticsearch-7.6.2\config下的jvm.options文件,在任意行上加上 -Dfile.encoding=GBKIK报错但成功启动,按照网上的说法是jdk权限 ...