SHUOJ 指示灯控制
来源:互联网 发布:淘宝内部劵骗局 编辑:程序博客网 时间:2024/05/13 11:31
描述
m盏灯排成一排,从1到m按顺序依次编号。有n个人也从1到n依次编号。第一个人(1号)将灯全部关闭。第二个人(2号)将凡是2和2的倍数的灯打开。第三个人(3号)将凡是3和3的倍数的灯做相反的处理(如果该灯为打开的,则将它关闭;如果该灯为关闭的,则将它打开)。以后的人都和3号一样,将凡是与自己编号相同的灯,以及是自己编号倍数的灯做相反处理。
你的任务是当第N个人操作之后,计算关着灯的数目。
输入
有若干组数据,每组是一行上的两个整数m,n(1<=m,n<=1000)。
输出
对每组数据m,n,输出关着灯的数目。
我的想法
这道题目的思路很简单,只是将m盏灯设置一个初始状态位0,如果对灯有操作则将它的状态位取反,最后统计看看有多少状态是1的灯就好了。
话虽是这么说,然而在我在具体实现的过程中出现了一个小问题。就是我们可以
int a[10]={0};
而不能
int a[m]={0};
即使m已经被赋值。然后经过我多(pin)方(ming)查(ctrl)证(F)最终找到了解释
C语言的数组长度必须是确定的,若要求是变量则需要使用内存动态分配函数学习了一个,感到十分对不起C语言老师。
代码
#include<stdio.h>int main(){ int m,n; int i,j; while(scanf("%d %d",&m,&n)==2) { int a[m+1]; for(i=0;i<=m;i++) a[i]=0; for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(j%i==0) a[j]=!a[j]; } } int cnt=0; for(i=1;i<=m;i++) { if(a[i]==1) cnt++; } printf("%d\n",cnt); } return 0;}
阅读全文
0 0
- SHUOJ 指示灯控制
- 指示灯
- Arduino Yun 开整 之 通过 Python 控制 D13 指示灯
- 51单片机,C语言编程,控制指示灯闪烁的频率
- SHUOJ切糕
- SHUOJ三进制
- SHUOJ 举重
- SHUOJ 2333
- 控制Windows Mobile的LED 之二:控制三个LED指示灯
- PB中如何控制判断大写以及小键盘指示灯是否开启并与按键协调工作
- webkit是怎样通过页面操作控制设备led指示灯的亮灭
- qt指示灯
- 路由指示灯
- 状态指示灯
- android 指示灯
- 树莓派指示灯
- 树莓派指示灯
- MFC指示灯
- 关于环境变量的配置
- 【51nod 教程】最大子段和问题(动态规划)
- 《转载》——8幅图图解Java机制
- n-gram统计 计算句子概率 SRILM安装使用
- 暑假集训 第N+1(15)天 糟了个糕
- SHUOJ 指示灯控制
- JavaScript基本包装类型
- UVa 548(二叉树的递归遍历、dfs)
- 网关的意义
- windows 端口被进程占用 但是进程已经关闭
- 模拟鼠标操作
- JAVA多线程详细
- Qt阴影效果
- HDOJ 3018-Ant Trip