没有公的吗,小母牛岂能独自fuck

解决方案 »

  1.   

    这是一个递归问题,类似于“Fibonacci”数列。
    求解方法是,设第n年有a(n)只牛,容易求得:
    a(n)=a(n-1)+a(n-4)     (a>=5)
    且初值a(1)=1,a(2)=1,a(3)=1,a(4)=1
    编程易得结果。
      

  2.   

    x(n+4) = 2*x(n+3) - x(n+2) + x(n+1) - x(n);
    x(0) = 0; x(1) = 1; x(2) = 1; x(3) = 1;
    可以这样考虑,(n+4)年的牛有三个来源:
    1. (n+3)年就有的牛    就是x(n+3)
    2. (n+3)年能生的牛所生的牛  x(n+3)-x(n+2)
    3. 在(n+3)年不能生但在(n+4)年能生的牛所生的牛 x(n+1)-x(n)
      

  3.   

    为后来网友总结:
    可以这样理解:第N年的牛数=前一年的牛数+新增加的牛数;而第N年具有生育能力的牛数,就是4年前留下来的牛数(3年前,2年前,1年前增加的牛是不具有生育能力的);当然,第N年新增加的牛数=第N年具有生育能力的牛生育的牛数,1头牛生1头牛.故有
    pipi_jf(姜帆)兄的a(n)=a(n-1)+a(n-4).
    感谢各位,感谢pipi_jf(姜帆)的一针见血,感谢 wistaria(听风听雨)的启示.
    程序如下:
    #include<iostream.h>int fib(int x);void main()
    {
    int nYear,number;
    cout<<"请输入要求第几年:";
    cin>>nYear;
    number=fib(nYear);
    cout<<"母牛数:"<<number<<endl;
    }int fib(int x)
    {
    if(x==1)
    return(1);
    else
    if(x==2)
    return(1);
    else
    if(x==3)
    return(1);
    else
    if(x==4)
    return(2);
    return(fib(x-1)+fib(x-4));
    }