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. 让CSS flex布局最后一行列表左对齐的N种方法

    原文链接https://mp.weixin.qq.com/s?__biz=MjM5MDA2MTI1MA==&mid=2649091838&idx=1&sn=fa4e1ed1e0 ...

  2. windows运行xcopy计划任务 结果是0x4解决方案

    近几天发现一直好好的数据备份计划任务一直返回0x4失败,直接执行bat又是正常的. bat命令中使用的是xcopy,到处找方案没解决. 今天意外在使用另一个命令时,发现提示:网络连接数据超过最大值. ...

  3. 肖sir ___性能测试____多线程

    一.理论 (一) (1)多线程是Python程序中实现多任务的一种方式(2)线程是程序执行的最小单位. (3)同属一个进程的多个线程共享进程所拥有的全部资源. (二)进程和线程对比 (1)关系对比: ...

  4. mysql 获取当月所有日期列表

    select date from (SELECT DATE_FORMAT(DATE_SUB(last_day(curdate()), INTERVAL xc-1 day), '%Y-%m-%d') a ...

  5. c# 调用User32.dll

    获取当前窗口句柄:GetForegroundWindow()[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelli ...

  6. [人脸识别]06-JPG人脸检测

    1-程序 #导入CV模块 import cv2 as cv def face_detect_fun(): gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY) print(c ...

  7. element-ui学习之-------input表单验证【各种情况总结】

    1.非必填,正整数 2.非0开头正整数

  8. docker-compose任务编排

    一.docker-compose介绍 使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排.下面介绍Docker官方产品,Docker Compose. ...

  9. [转]md Typora旧版免费安装包(多平台版本)

    typora旧版免费安装包: 链接:https://pan.baidu.com/s/1pIqeO2nTJ9_s16IZj6z3sA?pwd=gut4 提取码:gut4 v1.0以上的版本都要收费了,我 ...

  10. Winform窗体中打开PDF文件的三种方式

    来源:https://www.jb51.net/article/251451.htm