今天是我加入acm的第一天,非常激动,但同样也意识到自己面临的挑战,首先便是上周五的新生赛的补题任务。
1265: D 、Q数球
时间限制: 2 Sec 内存限制: 128 MB
提交: 15 解决: 6
命题人:外部导入
题目描述
小D和小Q是很好的兄弟,整天都是呆在一起;近日,他们闲着无事,玩一种游戏打发时间,他们把n个球按顺序编号,排成一个圆,从第一个球开始数,每数到第三个球,就把那个球拿出去,他们想看看最后剩下的球的编号是多少?
输入
输入有多组数据,每组数据输入n (n <= 10000);代表多少个球
输出
输出最后剩下的球的编号
样例输入
3
样例输出
2
这个D、Q数球问题,想了很久,先是考虑了函数,然而并没有想到好的循环还有删除元素方法。
最后通过查找相关资料了解到了我的新知识:队列模拟。每当数了一个数,就把他放到数列的最后一个,如果要删除,则只需将后面的全体向前覆盖一位。还有就是要注意多组输入。
1 | int main() |