亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: loveguohuasai
打印 上一主題 下一主題

[算法] 母牛數(shù)量算法 [復(fù)制鏈接]

論壇徽章:
0
251 [報(bào)告]
發(fā)表于 2010-11-09 00:49 |只看該作者
本帖最后由 劍子與劍癡 于 2010-11-09 13:01 編輯

這是我寫的代碼,路過的可以看下:

}
  1. #include <stdio.h>

  2. int born(int n); //子函數(shù)聲明
  3. int a[3];        //定義數(shù)組,由于數(shù)組3個(gè)元素都是全局變量,在這里初始化為0
  4. void main()
  5. {   int i,n,sum=1;

  6.         printf("輸入年份: ");
  7.         scanf("%d",&n);

  8.         for(i=1;i<=n;i++)
  9.                 sum+=born(i);

  10.         printf("母牛數(shù) : %d\n",sum);
  11. }

  12. int born(int m)     //用于計(jì)算每年新增母牛數(shù)
  13. {
  14.         if(m<5)
  15.                 if(m<4) return 0;        //1-3年間無新增母牛
  16.                 else{ a[2]=1;return 1;} //第4年開始有新增母牛,數(shù)組元素a[2]=1,對(duì)應(yīng)產(chǎn)1母牛
  17.         else
  18.                 return a[(m+1)%3]+=a[m%3]; //這是從第5年開始母牛數(shù)目增加的算法
復(fù)制代碼

論壇徽章:
0
252 [報(bào)告]
發(fā)表于 2010-11-09 10:27 |只看該作者
昨晚的我打代碼出了點(diǎn)錯(cuò),重發(fā):
  1. #include <stdio.h>
  2. int born(int n);
  3. int a[3];

  4. void main()
  5. {   int i,n,sum=1;

  6.         printf("輸入年份: ");
  7.         scanf("%d",&n);

  8.         for(i=1;i<=n;i++)
  9.                 sum+=born(i);

  10.         printf("母牛數(shù)  : %d\n",sum);
  11. }

  12. int born(int m)
  13. {
  14.         if(m<5)
  15.                 if(m<4) return 0;
  16.                 else return a[2]=1;
  17.         else
  18.                 return a[(m+1)%3]+=a[m%3];
  19. }
復(fù)制代碼

論壇徽章:
0
253 [報(bào)告]
發(fā)表于 2010-11-09 10:35 |只看該作者
回復(fù) 28# aero


你在28樓的解釋太誤人子弟了
    zlzj2010 在23樓的代碼是完全正確的,好好看看清楚

這真是個(gè)攔坑啊

論壇徽章:
0
254 [報(bào)告]
發(fā)表于 2010-11-09 12:25 |只看該作者
我的非遞歸算法:
  1. #include <stdio.h>
  2. int born(int );
  3. int a[3];

  4. void main()
  5. {   
  6.         int i,n,sum=1;
  7.         printf("輸入年份: ");
  8.         scanf("%d",&n);
  9.        
  10.         for(i=1;i<=n;i++)
  11.         {
  12.                 sum+=born(i);
  13.                 printf("第 %d 年 : %d\n",i,sum);
  14.         }
  15. }

  16. int born(int m)
  17. {
  18.         if(m<5)
  19.                 if(m<4) return 0;
  20.                 else return a[2]=1;
  21.         else
  22.                 return a[(m+1)%3]+=a[m%3];
  23. }
復(fù)制代碼
我的遞歸算法:
  1. #include <stdio.h>
  2. int fun(int m);
  3. void main()
  4. {   
  5.         int i,n,sum=1;
  6.         printf("輸入年份: ");
  7.         scanf("%d",&n);

  8.         for(i=1;i<=n;i++)
  9.         {       
  10.                 sum+=fun(i);
  11.                 printf("第 %d 年: %d\n",i,sum);
  12.         }
  13. }

  14. int fun(int m)
  15. {
  16.         if(m<5)
  17.                 if(m<4)  return 0;
  18.                 else return 1;
  19.         else  
  20.                 return fun(m-1)+fun(m-3);
  21. }
復(fù)制代碼
后面這個(gè)算法比前面的慢

這兩個(gè)算法在我的機(jī)子上調(diào)試編譯通過,但因?yàn)椴捎玫氖莍nt型變量,在50多年的時(shí)候就開始溢出了

論壇徽章:
0
255 [報(bào)告]
發(fā)表于 2010-11-09 12:45 |只看該作者
本帖最后由 劍子與劍癡 于 2010-11-09 12:59 編輯

再來一個(gè)不溢出的:

非遞歸算法:
  1. #include <stdio.h>

  2. typedef long double TYPE;
  3. TYPE born(int );
  4. TYPE a[3];

  5. void main()
  6. {   
  7.         int i,n;
  8.         TYPE sum=1;
  9.         printf("輸入年份: ");
  10.         scanf("%d",&n);
  11.        
  12.         for(i=1;i<=n;i++)
  13.         {
  14.                 sum+=born(i);
  15.                 printf("第 %d 年 : %.0f\n",i,sum);
  16.         }
  17. }

  18. TYPE born(int m)
  19. {
  20.         if(m<5)
  21.                 if(m<4) return 0;
  22.                 else return a[2]=1;
  23.         else
  24.                 return a[(m+1)%3]+=a[m%3];
  25. }
復(fù)制代碼
遞歸算法:
  1. #include <stdio.h>
  2. typedef long double  TYPE;

  3. TYPE fun(TYPE m);
  4. void main()
  5. {   
  6.         int i,n;
  7.         TYPE sum=1;
  8.         printf("輸入年份: ");
  9.         scanf("%d",&n);

  10.         for(i=1;i<=n;i++)
  11.         {       
  12.                 sum+=fun(i);
  13.                 printf("第 %d 年: %.0f\n",i,sum);
  14.         }
  15. }

  16. TYPE fun(TYPE m)
  17. {
  18.         if(m<5)
  19.                 if(m<4)  return 0;
  20.                 else return 1;
  21.         else  
  22.                 return fun(m-1)+fun(m-3);
  23. }
復(fù)制代碼
現(xiàn)在剩下的問題就是,下面的遞歸運(yùn)算實(shí)在太慢了,有興趣的可以改正下

論壇徽章:
0
256 [報(bào)告]
發(fā)表于 2010-11-10 23:02 |只看該作者
本帖最后由 DNFCF 于 2010-11-11 21:31 編輯
  1. #include<stdio.h>
  2. int main(void)
  3. {
  4. int year;
  5. int i=1;
  6. int sum=0;
  7. printf("please input years:");
  8. scanf("%d",&year);
  9. for(;i<=(year-year%3);i=i+3)
  10. sum=sum*2;
  11. printf("n=%d\n",sum);
  12. return 0;
  13. }
復(fù)制代碼
這樣寫有錯(cuò)嗎??

論壇徽章:
0
257 [報(bào)告]
發(fā)表于 2011-02-22 00:19 |只看該作者
how  long is the life of the cattle

論壇徽章:
1
白羊座
日期:2014-01-14 17:31:01
258 [報(bào)告]
發(fā)表于 2011-02-22 08:53 |只看該作者
呵呵,上面大意了做錯(cuò)了。這回應(yīng)該對(duì)了,用遞歸做的。剛才仔細(xì)想了想,沒想出來用非遞歸做的方法。有一點(diǎn)想 ...
aero 發(fā)表于 2003-08-03 22:31



    貌似還是有問題。

論壇徽章:
0
259 [報(bào)告]
發(fā)表于 2011-03-02 23:59 |只看該作者
不知道 是不是可以 采用 進(jìn)程的 加 信號(hào)的 做法!轉(zhuǎn)化一下   : 母?醋 父進(jìn)程, 父進(jìn)程先定時(shí) 4秒, 以后每秒 fork 出 一個(gè)子進(jìn)程,然后 子進(jìn)程 也定時(shí)4秒,再fork 子進(jìn)程!這樣 N 秒后,讓子進(jìn)程全部退出, 采用收僵尸的方法,wait 所有的 子進(jìn)程 ,記一個(gè)總數(shù)。這樣 是不是應(yīng)該 能達(dá)到效果呢??

論壇徽章:
0
260 [報(bào)告]
發(fā)表于 2011-03-08 15:58 |只看該作者
f(n) = f(n-1)+f(n-3) (n>=4)
f(1) = 1;
f(2) = 1;
f(3) = 1;
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP