zoukankan      html  css  js  c++  java
  • C++ HOJ 猴子分桃

    【题目描写叙述】
    老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的財富——一大堆桃子。老猴子决定把这些桃子分给小猴子。


    第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走当中的一堆。


    第二个猴子来了。它把桃子分成五堆。五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走当中的一堆。

     
    后来的小猴子都如此照办。最后剩下的桃子所有留给老猴子。 

    这里有n仅仅小猴子,请你写个程序计算一下在開始时至少有多少个桃子,以及最后老猴子最少能得到几个桃子。


    【输入】

    输入包含多组測试数据。

    每组測试数据包含一个整数n(1≤n≤20)。

    输入以0结束,该行不做处理。


    【输出】

    每组測试数据相应一行输出。

    包含两个整数a,b。

     

    分别代表開始时最小须要的桃子数。和结束后老猴子最少能得到的桃子数。


    【演示样例输入】
    5

    1

    0


    【演示样例输出】

    3121 1025

    1 1

    【算法思想】

    an表示第n个猴子来的时候,总共多少个桃子。

    求特征函数: a1=a1-(a1-1)/5  。a1=1          

    求通项公式:{an+4}={a1+4}q^(n-1)={a1+4}(5/4)^(n-1)

    【屌丝代码】

    #include <stdio.h>
    #include <iostream>
    int main()
    {
        int n, i;
        int sum, l, t;
        while (scanf("%d", &n)==1 && n)
    {
            l = 1;
            for (i=1; i<n; i++)
                l *= 5;
            sum = 1+5*(l-1);
            t = sum;
            for (i=1; i<=n-1; i++)
                t = (t-1)/5*4;
            printf("%d %d
    ", sum, t+n);
        }
    printf("%d %d
    ", sum, t+n);
        return 0;
    }
    


    【吊轨代码】

    #include<iostream>  
    #include<cmath>  
    using namespace std;  
    int main()  
    {  
        int n;  
        long long total_num,old_num;  
        while(cin>>n && n!=0)  
        {  
            total_num=pow(5,n)-4;  
            old_num=n+pow(0.8,n)*pow(5,n)-4;  
            cout<<total_num<<" "<<old_num<<endl;  
        }  
        return 0;  
    }  



    【误区释疑】

    1.总共一个猴子。那仅仅猴子拿到的桃子数目为Numa。总共两个猴子拿桃子,最后一个猴子拿到的桃子数目为Numb;总共三仅仅猴子拿桃子。最后一个猴子拿到的桃子数目为Numc。这里的Numa!

    =Numb!=Numc;

    2.查找总共多少仅仅猴子,假设按不论总共多少仅仅猴子。最后一仅仅猴子拿到的数目都是Num个,之前的猴子数目就会混淆,这里一定要区分开两个概念,总共N仅仅猴子拿到的桃子数目和第N个猴子拿到的数目是不一样的。

  • 相关阅读:
    阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件
    react的setState到底是同步还是异步?
    JMeter入门教程
    手把手教你接口自动化测试 – SoapUI & Groovy
    解读Web应用程序安全性问题的本质
    python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
    Linux常用命令
    PV原语操作详解
    软考计算机网络原理之IP计算问题汇总
    化繁为简了解进程与线程
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6752716.html
Copyright © 2011-2022 走看看