AOJ615 神算诸葛亮
来源:互联网 发布:淘宝客贷必须是买家吗 编辑:程序博客网 时间:2024/04/30 21:15
Description
相传有一天,诸葛亮把将士们召集在一起,说:“你们中间不论谁,从1~1024中任意挑选一个整数,记在心里,我提十个问题,只要求回答'是'或'大于','小于'.十个问题全答完以后,我 就会‘算’出你心里记的那个数。”诸葛亮刚说完,一个谋士站起来说,他已经选好了一个数。诸葛亮问道:“你选的数大于512?”谋士答:“不是。”诸葛亮又接连向这,谋士提了九个问题,谋士一一作了回答。诸葛亮最后说:“你记的那个数是1。”谋士听了极为惊奇,因为这个数字真是他选的数。你知道诸葛亮是怎么妙算的吗?现在给你一个整数N,表示你要猜一个范围为【1,N】的数字(这个数字已经提前确定了),你知道最坏情况下猜几次才能确定答案吗?
Input
输入包括多组数据,以文件(EOF)结束。
每组测试数据包括一个整数N(1<= N <= 10 ^ 9)
每组测试数据包括一个整数N(1<= N <= 10 ^ 9)
Output
每组测试数据输出一个整数,表示最多猜几次才能确定答案。
Sample Input
10242
Sample Output
101
思路:
可以直接取log2 但是我是模拟的
每次二分 然后取较大的部分继续二分 直到可以一次确定
参考代码:
#include <stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) { int a=(n+1)/2; int num=1; if(n==1) //n==1时不需要猜 { printf("0\n"); continue; } while((n-a)!=1) //取右端点每次二分 直到n-a==1 因为到不了n { a=(a+1+n)/2; num++; } printf("%d\n",num); } return 0; }
0 0
- AOJ615 神算诸葛亮
- 诸葛亮神算 v5.0 是什么
- AOJ 615学会缜密思考 神算诸葛亮
- 诸葛亮
- 诸葛神算
- 神算的最后时刻!
- 神人诸葛亮
- 诸葛亮:卧龙
- 《戒子篇》-- 诸葛亮
- 诸葛亮《诫子篇》
- 关于诸葛亮
- 出师表 诸葛亮
- 诸葛亮娶丑妻
- 诸葛亮骂死王朗
- 诸葛亮--舌辩群儒
- 《戒子训》 诸葛亮
- 诸葛亮《戒子篇》
- 追悼诸葛亮
- AOJ588 月老使命
- AOJ2 Home Work
- AOJ529 丢失的字符串
- POJ题目分类
- AOJ34 Euchre Results
- AOJ615 神算诸葛亮
- AOJ5 Electrical Outlets
- Activity的跳转与传值
- AOJ606 LOL系列之德玛短路
- AOJ611 消失的5,8,9
- AOJ614 座位安排
- AOJ41 Least Common Multiple
- Python常用资源整理(转)
- 关于C语言的转义字符