- 論壇徽章:
- 0
|
我的非遞歸算法:- #include <stdio.h>
- int born(int );
- int a[3];
- void main()
- {
- int i,n,sum=1;
- printf("輸入年份: ");
- scanf("%d",&n);
-
- for(i=1;i<=n;i++)
- {
- sum+=born(i);
- printf("第 %d 年 : %d\n",i,sum);
- }
- }
- int born(int m)
- {
- if(m<5)
- if(m<4) return 0;
- else return a[2]=1;
- else
- return a[(m+1)%3]+=a[m%3];
- }
復(fù)制代碼 我的遞歸算法:- #include <stdio.h>
- int fun(int m);
- void main()
- {
- int i,n,sum=1;
- printf("輸入年份: ");
- scanf("%d",&n);
- for(i=1;i<=n;i++)
- {
- sum+=fun(i);
- printf("第 %d 年: %d\n",i,sum);
- }
- }
- int fun(int m)
- {
- if(m<5)
- if(m<4) return 0;
- else return 1;
- else
- return fun(m-1)+fun(m-3);
- }
復(fù)制代碼 后面這個(gè)算法比前面的慢
這兩個(gè)算法在我的機(jī)子上調(diào)試編譯通過,但因?yàn)椴捎玫氖莍nt型變量,在50多年的時(shí)候就開始溢出了 |
|