无聊的服务员(重复关门)
来源:互联网 发布:中国中车株洲所知乎 编辑:程序博客网 时间:2024/04/30 21:56
现有一个酒店有n个房间,依次编号为1到n,第一个服务员经过,将所有房间门打开;第二个服务员经过将所有编号为2的倍数的房门打开的关上,关闭的打开;第三个服务员经过将所有编号为3倍数的房门打开的关上,关闭的打开。依此类推;
原先我的思路是这样的:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,a[110]={},s=0;
cin>>n>>m;
for(int i=1;i<=m;i++) //人数
{
if(i%2!=0) //判断这个人是关门还是开门,此时为开门(但题目思路这样是错的)
{
for(int j=1;j<=n;j++)
if(j%i==0)a[j]=1; //如果门号是这个人的倍数,则门开着
}
else
{
for(int k=1;k<=n;k++)
if(k%i==0)a[k]=0; //如果门号是这关门人的倍数,则门关着
}
}
for(int i=1;i<=n;i++)
if(a[i]==1)s++; //统计开着门的数量
cout<<s<<endl;
return 0;
}
后来和大姐头(俺姐们儿)争执了一番我一直没让她说话,最后她一语惊醒我:有的门是两个数的倍数,关了还要开,开的还要关的呀。
不用说,顿时就尴尬了......
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,a[110],s=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
a[i]=-1; //把每道门设为关上的
for(int i=1;i<=m;i++)//枚举人
for(int j=1;j<=n;j++) //内套门
if(j%i==0)a[j]=-a[j]; //是人的倍数关上的就开开的就关(注意)
for(int i=1;i<=n;i++)
if(a[i]==1)s++;//如果是开的就累加最后输出
cout<<s<<endl;
return 0;
}
虽然是简单的题目但错就是错了,只有积小步成大步,才会有所进步!
- 无聊的服务员(重复关门)
- 软件公司怎么关门的
- 服务员,来张卫生巾!(身边真实的笑话)
- 连卖饭的都关门了。。。
- 我的无聊(Ⅱ)
- 服务员就结账了的p8u8
- 从超市服务员到程序员的路上
- 爆笑!餐厅服务员的經典服务
- (3)ICE服务员起到的作用
- 三层架构详解(服务员-厨师-采购员)
- 无聊的
- 无聊写的无聊东西
- 英语学习--语法(一)定语和状语是一对服务员,它们的区别在于服务的对象不同
- 写一个特别无聊的博客--让指定的字符串重复
- 学习笔记(无聊时的总结)
- 无聊的apache错误(.htaccess pcfg_openfile)
- 无聊的apache错误(.htaccess pcfg_openfile)
- 李开复(不要做无聊的事情)
- spinner:获取选中值的三种方法
- Android 给文字添加阴影
- ElasticSearch API for JAVA 学习笔记
- 线程
- js 点击图片出来放大弹窗,再次点击还原
- 无聊的服务员(重复关门)
- dumpcap抓包(python)
- 基于HTTP模拟实现静态服务器
- java二叉树创建以及遍历
- Activity中嵌套ScorllView布局使用ImmersionBar出现的问题
- centos6.5 安装 gitlab 以及汉化 本人亲测 2017-12-14
- 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构---权限管理系统
- xshell无法远程连接阿里云
- Just Begin A New Life