zoukankan      html  css  js  c++  java
  • 最少的次数

    2191: 最少的次数

    Time Limit: 1 Sec  Memory Limit: 512 MB
    Submit: 553  Solved: 73
    [Submit][Status][BBS]

    Description

    这一天,成都东软学院ACM团队举办了一场游戏。游戏是这样的:

    在桌上有一堆糖,其中有一颗糖与其他糖外观一模一样,但重量却明显轻。现在得知桌上共有N颗糖,还有一个天平,问最少需要多少次一定能准确的找出该糖?今天作为比赛中的你,相信这一问题应该不是什么难事,加油吧!

    Input

    第一行包含一个数m,表示后面有m个测试数据

    第二行起共m行有一个数n,(1 <= n <= 263-1)表示糖的个数

    Output

    输出格式如下:

    首先输出Case n: (n表示答案计数,其中Case后面包含一个空格,':'后面包含一个空格,请注意!)

    后面输出相应的最小次数

    Sample Input

    2
    1
    2

    Sample Output

    Case 1: 0
    Case 2: 1

    HINT

     

    Source

    2012年成都东软学院冬季ACM校赛(个人赛)

    #include <stdio.h>
    int main()
    {
        int n;
        scanf("%d",&n);
        int t=0;
        long long m;
        while(n--)
        {
            int k=0;
            scanf("%lld",&m);
            while(m>1)
            {
                if(m%3!=0)
                m=m+(3-m%3);
                m/=3;
                k++;
            }
            printf("Case %d: %d
    ",++t,k);
        }
        return 0;
    }

    相比2分,三分能算出更少的次数,如果是分成4份以上就成堆无法判断了!

    把糖果平均分成3份,不能整除的补成能被3整除的,看它能被3除几次!能除一次,就是3份比较1次,排除掉另外三分之二的糖果! 

    也就是算log以3为底的m

  • 相关阅读:
    javascript类的封装『转』
    闭包概念
    继承
    理解面向对象
    cookie的使用
    开园啦。。。
    Myslq 之常用命令
    Myslq 之修改提示符
    Myslq 之登陆、退出
    Javascript 之 Number
  • 原文地址:https://www.cnblogs.com/tianmin123/p/5255033.html
Copyright © 2011-2022 走看看