zoukankan      html  css  js  c++  java
  • 猴子摘桃

    五只猴子一起摘了一堆桃子,因为太累了,它们商量决定,先睡一觉再分。一会其中的一只猴子来了,它见别的猴子没来,便将这堆桃子平均分成5份 ,结果多了一个,就将多的这个吃了,并拿走其中的一份。一会儿,第2只猴子来了,他不知道已经有一个同伴来过,还以为自己是第一个到的呢,于是将地上的桃子堆起来,再一次平均分成5份,发现也多了一个,同样吃了这1个,并拿走其中一份。接着来的第3、第4、第5只猴子都是这样做的……根据上面的条件,问这5只猴子至少摘了多少个桃子?第5只猴子走后还剩下多少个桃子?

    枚举法:找准枚举对象 提高枚举效率,枚举s0,与枚举s5 的效率是差距很大的。s0执行了3116次,而s5只执行了255次

    #include <stdio.h>
    int main()
    {
        int s0,s1,s2,s3,s4,s5,n,i;
        for(s5=1;; s5++)
        {
            s4=5*s5+1;
            if(s4%4)
                continue;
            else
                s4/=4;
            s3=5*s4+1;
            if(s3%4)
                continue;
            else
                s3/=4;
            s2=5*s3+1;
            if(s2%4)
                continue;
            else
                s2/=4;
            s1=5*s2+1;
            if(s1%4)
                continue;
            else
                s1/=4;
            s0=s1*5+1;
            break;
    
        }
        printf("%d %d
    ",s0,s5*4);
        return 0;
    }
  • 相关阅读:
    猫树
    单位根反演
    区间修改区间求和
    最远点 决策单调性
    圆方树
    912. 排序数组
    1309. 解码字母到整数映射
    28. 实现 strStr()
    31. 下一个排列
    22. 括号生成
  • 原文地址:https://www.cnblogs.com/tianmin123/p/4675966.html
Copyright © 2011-2022 走看看