免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發新帖
查看: 100716 | 回復: 267
打印 上一主題 下一主題

[算法] 母牛數量算法 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發表于 2003-08-03 17:14 |只看該作者 |倒序瀏覽
若一頭小母牛,從出生起第四個年頭開始每年生一頭母牛,按此規律,第n年有多少頭母牛?

論壇徽章:
0
2 [報告]
發表于 2003-08-03 18:10 |只看該作者

母牛數量算法

是不是老師出的題目,你拿到這里來找答案了,這樣可不好,自己做出來才對

論壇徽章:
0
3 [報告]
發表于 2003-08-03 18:12 |只看該作者

母牛數量算法

呵呵,自己想想吧
思考也是一種樂趣~~~

論壇徽章:
0
4 [報告]
發表于 2003-08-03 18:35 |只看該作者

母牛數量算法

是呀,多多思考啊,自己找答案

論壇徽章:
0
5 [報告]
發表于 2003-08-03 19:56 |只看該作者

母牛數量算法

[quote]原帖由 "灰色軌跡"]是不是老師出的題目,你拿到這里來找答案了,這樣可不好,自己做出來才對[/quote 發表:
     
自己看書的,看到這道題想了很久都想不到,用遞歸
但是只是有點阻礙。

說說看

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
6 [報告]
發表于 2003-08-03 20:57 |只看該作者

母牛數量算法

不用遞歸啊,想想規律用循環最好了。下面的代碼調試過了。
  1. #include <stdio.h>;

  2. int count=0;
  3. int step=1;

  4. int fun(int n){
  5.         int sum=0;
  6.         while(n){
  7.                 sum+=step;
  8.                 count++;
  9.                 if ( count%4==0 )
  10.                         step++;
  11.                 n--;
  12.         }
  13.         return sum;
  14. }

  15. int main(){
  16.         int n;
  17.         printf("input n:");
  18.         scanf("%d",&n);
  19.         printf("result:%d\n",fun(n));
  20. }

復制代碼

論壇徽章:
0
7 [報告]
發表于 2003-08-03 21:11 |只看該作者

母牛數量算法

#include <stdio.h>;


int cow(int all_cow, int can_born, int i_born, int ii_born, int iii_born, int year)
{
    all_cow += can_born;
    can_born += iii_born;
    iii_born = ii_born;
    ii_born = i_born;
    i_born = (all_cow - ii_born - iii_born)>;can_born?(all_cow - ii_born - iii_born):can_born;
    year--;
    if (year == 0)
    {
        return all_cow;
    }
    else
    {
        cow(all_cow, can_born, i_born, ii_born, iii_born, year);
    }
   
}

int main(int argc, char* argv[])
{
    if (argc != 2)
    {
        exit(-1);
    }
    printf("%d\n", cow(1, 0, 1, 0, 0, atoi(argv[1])));
}

不知道對不對     

樓上的兄弟
第100年是不是234467045頭牛?

論壇徽章:
0
8 [報告]
發表于 2003-08-03 22:08 |只看該作者

母牛數量算法

原帖由 "灰色軌跡" 發表:
}

不知道對不對     

樓上的兄弟
第100年是不是234467045頭牛?
  

我也差不多做出了,差不多像上面那個。

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
9 [報告]
發表于 2003-08-03 22:31 |只看該作者

母牛數量算法

呵呵,上面大意了做錯了。這回應該對了,用遞歸做的。剛才仔細想了想,沒想出來用非遞歸做的方法。有一點想法:

如果把這個數列看成是連續的,那么牛增長數量的函數似乎是一個n階可導的函數。是不是這樣的函數就必須用遞歸做,

用非遞歸就做不出來呢?

求非遞歸做法。

仔細想想,這題還是挺難的,不過,也許是我太面了,呵呵。

我的算法太不好了,算了2分鐘了100的還沒計算出來。

  1. #include <stdio.h>;

  2. int inc(int);

  3. int fun(int n){                        /*計算第n年有多少牛的函數。*/
  4.         if ( n==1 ) return 1;
  5.         return inc(n)+fun(n-1);
  6. }

  7. int inc(int n){                        /*計算第n年牛的增長率的函數*/
  8.         if ( n<5 )                return 0;
  9.         else if ( n==5 )        return 1; /*滿4周歲的時候開始生小牛,即第5年的增長率為1。*/
  10.         else                         return inc(n-1)+inc(n-4);
  11. }

  12. int main(){
  13.         int n;
  14.         printf("\ninput n:");
  15.         scanf("%d",&n);
  16.         printf("result:%d\n",fun(n));
  17. }

復制代碼

論壇徽章:
0
10 [報告]
發表于 2003-08-03 22:48 |只看該作者

母牛數量算法

aero  

如果能推導一個公式出來應該可以不用遞歸了,這對數學基礎要求就高了:(
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則 發表回復

  

北京盛拓優訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP
   日韩综合区视频第一页导航,无码JK粉嫩小泬在线观看,午夜精品A片一区二区三区,日日躁夜夜躁狠狠躁麻豆,大胆国模,免费观看无遮挡www的网站