Description

有这样一个众所周知的问题:

你面前有7个硬币,其中有一个劣质的(它比正常的硬币轻一点点),你有一个天平,问需要你需要使用天平多少次能保证找到那个劣质的硬币。

众所周知的算法是:

第一次 把7个硬币分成3+3+1一共3堆,把前两堆放到天平的两端,若天平平了说明第三堆即剩下的那一枚硬币是劣质的,否则劣质的硬币在较轻的那一堆。

第二次 把3个硬币分成1+1+1一共3堆,把前两堆放到天平的两端,若天平平了说明第三堆即剩下的那一枚硬币是劣质的,否则劣质的硬币是较轻的那一堆的那一个硬币。

综上一共需要两次。

那么如果是9枚硬币呢?

第一次 把9个硬币分成4+4+1一共3堆,把前两堆放到天平的两端,若天平平了说明第三堆即剩下的那一枚硬币是劣质的,否则劣质的硬币在较轻的那一堆。

第二次 把4个硬币分成2+2一共2堆,把这两堆放到天平的两端,天平必然会倾斜,说明劣质的硬币在较轻的那一堆。

第三次 把2个硬币分成1+1一共2堆,把这两堆放到天平的两端,天平必然会倾斜,说明劣质的硬币是较轻的那一堆的那个硬币。

综上一共需要三次。

现在,问题来了。要是摆在你面前的是n枚硬币,你需要用以上描述的这种算法操作多少次,才能保证找到那个劣质的硬币呢?

Input

一行一个正整数n,表示硬币的总数。

n < =109

Output

一行一个整数,表示需要使用天平多少次能保证找到那个劣质的硬币

Sample Input

7

Sample Output

2

题意:这题看过程就知道了,每次分成两堆,能整份两堆就是一人一半,不然就拿出一个,剩下的分成一人一半,然后最后剩到一人一个的时候(所以是>=2,不是>2)就知道谁轻了。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <math.h>
#include <set>
using namespace std;
int n,x,temp;
int main()
{
cin>>n;
int ans=;
while(n>=)
{
ans++;
n=n/;
}
cout<<ans<<endl;
return ;
} /**********************************************************************
Problem: 2219
User: therang
Language: C++
Result: AC
Time:4 ms
Memory:2020 kb
**********************************************************************/

CSU 2018年12月月赛 G(2219): Coin的更多相关文章

  1. CSU 2018年12月月赛 B 2214: Sequence Magic

    Description 有一个1到N的自然数序列1,2,3,...,N-1,N. 我们对它进行M次操作,每次操作将其中连续的一段区间 [Ai,Bi][Ai,Bi] (即第Ai个元素到第Bi个元素之间的 ...

  2. CSU 2018年12月月赛 H(2220): Godsend

    Description Leha somehow found an array consisting of n integers. Looking at it, he came up with a t ...

  3. CSU 2018年12月月赛 F(2218): Finding prime numbers

    Description xrdog has a number set. There are 95 numbers in this set. They all have something in com ...

  4. CSU 2018年12月月赛 D 2216 : Words Transformation

    Description There are n words, you have to turn them into plural form. If a singular noun ends with ...

  5. CSU 2018年12月月赛 A 2213: Physics Exam

    Description 高中物理老师总认为给学生文本形式的问题比给纯计算形式的问题要求更高.毕竟,学生首先得阅读和理解问题. 因此,他们描述一个问题不像”U=10V,I=5A,P=?”,而是”有一个含 ...

  6. CodePlus2017 12月月赛 div2可做题2

    11月的月赛错过了,来打12月月赛,由于很(zi)想(ji)拿(tai)衣(ruo)服(la),所以去打div2. T1是一个sb模拟,但是机房全卡死在这道语文题上了,基本上弄了一个半小时,T2可以秒 ...

  7. 2018年12月8日广州.NET微软技术俱乐部活动总结

    吕毅写了一篇活动总结,写得很好!原文地址是:https://blog.walterlv.com/post/december-event-microsoft-technology-salon.html ...

  8. [2018-11-27]2018年12月1日宁波dotnet社区线下活动

    离上次活动,转眼又过了一个月,幸得各路大神支持,于本周六(12月1日),宁波dotnet社区的线下分享活动又来啦! 活动嘉宾及主题 董斌辉 2015-2019年微软全球最有价值专家(.NET方向) 2 ...

  9. web前端开发2018年12月找工作总结

    2018年的冬天额外的冷,由内致外... 作为一名刚刚踏入社会的实习生,可谓是狠狠的体验了一把什么叫社会(同时也感叹父母赚钱真的很不容易) 前几天看见这样一句话"如果你不知道社会的辛苦,要么 ...

随机推荐

  1. 学习Python到写poc其实没那么难

    现在,开始! 0x00 前言 今天刚刚把http://drops.wooyun.org/tips/12751放到收藏夹准备看的,然后又看到题主的这个问题.顺便观摩了1楼大神的博客,我这种炒鸡新手表示很 ...

  2. 洛谷 P3952 时间复杂度【模拟】

    把No写成NO,WA了一发-- 现在看这题也不难-- 用一个栈,记一下前面F的字母,是否合法,合法的有多长,每次入栈弹栈即可 #include<iostream> #include< ...

  3. 徐州联赛选拔赛 - 计算IP地址值

    题目链接 思路:这是一道非常简单的题目,直接用公式计算就好了.对于IP地址a.b.c.d,转换为十进制数就是(a<<24)|(b<<16)|(c<<8)|d.唯一要 ...

  4. 洛谷P3295 [SCOI2016]萌萌哒(倍增+并查集)

    传送门 思路太妙了啊…… 容易才怪想到暴力,把区间内的每一个数字用并查集维护相等,然后设最后总共有$k$个并查集,那么答案就是$9*10^{k-1}$(因为第一位不能为0) 考虑倍增.我们设$f[i] ...

  5. input type="file"文件上传到后台读取

    html页面(表单采用bootStrap) js部分: //更换头像时把上传的图片post方式到控制器 <script type="text/javascript"> ...

  6. 11.Flask-钩子函数

    在Flask中钩子函数是使用特定的装饰器的函数.为什么叫做钩子函数呢,是因为钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码,那么这种函数就叫做钩子函数. before_first_requ ...

  7. Qt - 锁屏界面加虚拟小键盘

    一.实现效果 鼠标点击"密码输入栏",弹出虚拟键盘,输入锁屏密码后,点击虚拟键盘外部区域,则会隐藏虚拟键盘,再点击登录,成功进入主界面. 二.虚拟键盘-程序设计 2.1 frmNu ...

  8. 51nod 1133 不重叠的线段(贪心)

    1133 不重叠的线段  基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠 ...

  9. 牛客小白月赛5-D-阶乘(求n内每个数的阶乘相乘后尾数为0的个数)

    题目描述 输入描述: 输入数据共一行,一个正整数n,意义如“问题描述”. 输出描述: 输出一行描述答案:一个正整数k,表示S的末尾有k个0 输入例子: 10 输出例子: 7 --> 示例1 输入 ...

  10. shell 调试 `<<' is not matched

    我的这段脚本,验证数据库连接是否正常: #! /bin/sh...while ..do....sqlplus $user/ $passwd@$sid  <<!quit;! ... 单独执行 ...