递归求菲波拉契前N项的和

 1 #include <stdio.h>
 2 /*
 3 题目:用递归求菲波拉契序列前N项的和
 4 */
 5 int func(int n);
 6 int sum(int n);
 7 int main(void)
 8 {
 9     int N;
10 gogogo:printf("输入要求前N项的和(例:输入10,求出前10项的和)\n");
11     scanf("%d",&N);
12     getchar();
13     printf("sum(%d) = %d\n",N,sum(N));
14     goto gogogo;
15 
16     return 0;
17 }
18 int func(int n)
19 {
20     if(1 == n||2 == n)
21         return 1;
22     else
23         return func(n-1)+func(n-2);
24         
25 }
26 int sum(int n)
27 {
28     if(1 == n)
29         return 1;
30     else
31         return func(n)+sum(n-1);//前N项的和 = 第N项的值+前N-1项的和
32 }

 

posted on 2018-08-28 19:37  王朝马汉  阅读(208)  评论(0编辑  收藏  举报

导航