ZOJ 3498 Javabeans
2013-07-04 20:03
381 查看
ZOJ 3498Javabeans
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4321 这个时候整个422实验室就只剩下了3个女生,很多人都去参加什么暑假社会实践的出征仪式。为什么ACM这件事在很多人看来这么地位低下,不值得付出。真的很难过。
题意:这道题一开始完全读不懂题意,还要问老师。这道题就是说,有n个盒子,盒子中豆豆的数目分别为1~n,现在,给出盒子的数目,如果你决定第一天吃3个豆豆,那么就从盒子中豆豆数目大于等于3个的每个盒子中吃掉3个豆豆,以此类推,问最快几天能吃掉所有盒子中的所有豆豆。
思路:
看了别人的解题并且听老师讲了,吃的最快的关键是折半,因为每次可以吃多个盒子,这样每吃一次,整体数据就会小一倍。
例如:
盒子数目:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17……
吃完要求的天数:
1 2 2 3 3 3 3 4 4 4 4 4 4 4 4 5 5……
于是找到了关于2的幂的规律。
1 2 3 4 5 6 7
第一天吃7/2+1 = 4个 1 2 3 0 1 2 3
第二天吃3/2+1 = 2个 1 0 1 0 1 0 1
第二天吃1/2+1 = 1个 0 0 0 0 0 0 0
天数为按照以上盒子数目不断除以二,除到零为止,求次数。
细节+代码如下:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4321 这个时候整个422实验室就只剩下了3个女生,很多人都去参加什么暑假社会实践的出征仪式。为什么ACM这件事在很多人看来这么地位低下,不值得付出。真的很难过。
题意:这道题一开始完全读不懂题意,还要问老师。这道题就是说,有n个盒子,盒子中豆豆的数目分别为1~n,现在,给出盒子的数目,如果你决定第一天吃3个豆豆,那么就从盒子中豆豆数目大于等于3个的每个盒子中吃掉3个豆豆,以此类推,问最快几天能吃掉所有盒子中的所有豆豆。
思路:
看了别人的解题并且听老师讲了,吃的最快的关键是折半,因为每次可以吃多个盒子,这样每吃一次,整体数据就会小一倍。
例如:
盒子数目:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17……
吃完要求的天数:
1 2 2 3 3 3 3 4 4 4 4 4 4 4 4 5 5……
于是找到了关于2的幂的规律。
1 2 3 4 5 6 7
第一天吃7/2+1 = 4个 1 2 3 0 1 2 3
第二天吃3/2+1 = 2个 1 0 1 0 1 0 1
第二天吃1/2+1 = 1个 0 0 0 0 0 0 0
天数为按照以上盒子数目不断除以二,除到零为止,求次数。
细节+代码如下:
#include<stdio.h> #include<math.h> int main(){ int T,n,i; float a,b,c,j; scanf("%d",&T); for(i = 1;i<=T;i++){ scanf("%d",&n); if(n==1){ printf("1\n"); continue; } for(j = 0;;j++){ if(n>=pow(2,j)&&n<pow(2,(j+1))){ /*pow(a,b)函数求的是a的b次方,而且其中的参数必须是*/ printf("%.f\n",j+1); /*float类型,返回值自然也是float类型。*/ break; } } } return 0; }
相关文章推荐
- ZOJ 3498 Javabeans(数学)
- zoj 3498 Javabeans
- zoj 3498 javabeans
- ZOJ 3498 Javabeans【规律】
- ZOJ 3498 Javabeans
- ZOJ Problem Set - 3498||Javabeans
- ZOJ 3498 L - Javabeans
- ZOJ 3498 Javabeans
- ZOJ 3498 Javabeans【水】
- ZOJ - 3498 Javabeans
- ZOJ 3498 Javabeans
- ZOJ 3498 Javabeans
- ZOJ 3498 Javabeans (二分)
- zoj 3498 Javabeans
- ZOJ 3498 Javabeans(找规律)
- ZOJ 3498 Javabeans
- zju 3498 Javabeans
- ZOJ-3498
- ZOJ 1093 Monkey and Banana
- zoj 3209 Dancing links/hust 1017