1.递归实现斐波那契数列,1,1,2,3,5,8,13,21,34,55,89,144
代码如下:
#include <stdio.h> int getnum(int a); int main() { printf("输入数组长度"); int a; // printf("%d",getnum(5)); scanf("%d",&a); for(int i=0;i<a;i++){ int aa = getnum(i); printf("%d\t",aa); } printf("\n"); } int getnum(int a) { if(a<2){ return 1; }else { return getnum(a-2)+getnum(a-1); } }
结果如下:
输入数组长度15 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
2、一个人赶着鸭子去每个村庄卖,每经过一个 村子卖去所赶鸭子的一半又一只。 这样他经过了 七个村子后还剩 两只鸭子,
问问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?代码如下:
#include <stdio.h> int beijingduck(int a); int main() { printf("输入经过了几个村子"); int aa= 0,i =0; scanf("%d",&aa); int result =beijingduck(aa); printf("\n出发时带了%d只鸭子\n",result); for(i=0;i<aa;i++){ result = (result / 2)+1; printf("第%d个村子卖了%d只鸭子\n",i+1,result); } } int beijingduck(int aa) { //int a = 2; if(aa == 0 ) { return 2; }else { return 2 * (beijingduck(aa-1) + 1); } }
结果如下:
输入经过了几个村子7 出发时带了510只鸭子 第1个村子卖了256只鸭子 第2个村子卖了129只鸭子 第3个村子卖了65只鸭子 第4个村子卖了33只鸭子 第5个村子卖了17只鸭子 第6个村子卖了9只鸭子 第7个村子卖了5只鸭子