谁是赌神
来源:互联网 发布:国联证券软件下载 编辑:程序博客网 时间:2024/06/10 16:52
谁是赌神
Time Limit: 1 s | Memory Limit: 64 MB
Difficulty: 1
Description
ACM队四位大神坐在一起玩纸牌,要决出谁才是真正的赌神之名,他们玩得游戏规则呢
很简单,就是有n张纸牌从上到下按顺序依次是1,2,3,4,5...n,每次操作呢就是把最上面的一张牌
扔掉然后再把现在在最上面的那一张拿走放在最下面。比如原始序列是1,2,3,4,5...n一次操作后
就变成了3,4,...n,2,他们的规则是随便给出一个数n,谁能快速答出这n张牌反复经过上述操作后
最后剩下的纸牌的编号是多少就算谁赢。各大神们都是不愿轻易服输之辈,他们冥思苦想,最后
终于lt大神和ctx大神在最短的时间内解决了这个问题,但是呢,赌神只有一个,这怎么办呢,没办
法,经过协商,lt大神获得赌圣之名,ctx大神获得赌仙之名,当然这是后话。现在的问题是,如果
你也参加了赌神争夺战,你能不能也夺得赌神之名呢?看你的了!
Acm队的大神说过,AC就像爱情,来的那么突然,让你惊讶,并且欣喜若狂。
尽情的来吧~~~~!!!
Input
每一行输入一个整数,代表纸牌的数量n(1<=n<=500000),输入整数0代表输入结束数据保证数据的组数不会超过500000组
Output
输出:每组输入数据的输出占一行,输出只有一个数字,代表最后剩下的牌的编号
Sample Input
1
Sample Output
1
Source
1
Hint
测试数据好坑
测试数据真的好坑
这一题是一个规律题,开始用数组模拟做的,果断超时,之后多写了几组,发现了规律,接下来是规律,1-1,2-2,3-2,4-4,5-2,6-4,7-6,8-8...16-16..32-32懂了吧,,,,循环的...
#include <stdio.h>#include <math.h>int main(){int n, i, result;scanf("%d", &n);while(n != 0){if(n == 1){printf("1\n");}else if(n == 2){printf("2\n");}else if(n == 3){printf("2\n");}else if(n == 4){printf("4\n");}else{for(i = 1; ; i++){result = (int)pow(2, i);//printf("%d", result);if(result >= n){break ;}}int sum = result ;//for(i = sum; i > n; i--)//{sum = sum - 2 * (sum - n);//竟然改成这样直接计算就不超时了,我简直是醉了//}printf("%d\n", sum);}scanf("%d", &n);}return 0;}
0 0
- 谁是赌神
- 谁是老师,谁是学生?
- 谁是流氓软件?
- 谁是凶手!
- 谁是穷人
- 谁是小偷
- 谁是绊脚石?
- 谁是SB?
- 谁是头儿
- 谁是是非?
- 谁是船长?
- 谁是机械师?
- 谁是"第一"?
- 谁是窃贼
- 谁是小偷
- 谁是贼?
- 谁是小偷
- 谁是窃贼
- leetcode -- 3Sum
- c语言重载不同类型数组的print(c99标准)
- HDU 1205 Specialized Four-Digit Numbers
- dubbo是如何“插入”到spring框架中的
- android tabhost底部菜单栏实现原理与代码
- 谁是赌神
- JavaScript表单验证和提交(结合正则表达式)
- 朵拉影像开发日记 12.07
- 瑞芯微RK3188 内核心跳灯
- 【学习ios之路:C语言】If循环的应用的练习
- c语言实现不同类型数组的print(union + flag)
- UIActivityIndicatorView的详细使用
- 用字符串实现大数相乘
- 搭班子 定战略 带队伍---联想柳传志管理三要素