1006: 机房的位置(二) [思维]
时间限制: 1 Sec 内存限制: 128 MB
提交: 941 解决: 302 统计
题目描述
机房里面有一排大佬专座,这一排共有NN个位置,已知任意两个大佬之间必须空有至少一个位置。问最少需要多少个大佬可以完全占用这NN个位置使得不会有任何人入座。
输入
第一行输入一个整数TT,代表有TT组测试数据。
每组数据输入一个整数NN,代表有NN个位置。
注:1<=T<=1000,1<=N<=1091<=T<=1000,1<=N<=109。
输出
对每组测试数据,输出一个整数代表最少需要的人数。
样例输入
2 1 3
样例输出
1 1
思路:
我们考虑一下6个位置时最少需几个dalao,-- | -- -- | --,很明显只需要两个就够了,这样我们发现左边和右边必须要只留一个位置才能无法插入,而中间两个dalao之间可以空出两个位置,我们把左侧的那个空位放到右侧,就形成了周期为3的循环,于是我们得出的答案是ans = n / 3,但是如果n % 3有余数是要+1的,因为两侧最多只能空出一个空位
代码:
#include<cstdio>
using namespace std;
int main()
{
int t,n;
scanf("%d",&t);
while (t --)
{
scanf("%d",&n);
printf("%d\n",n / 3 + (n % 3 ? 1 : 0));
}
return 0;
}