题一、
递归实现斐波那契数列,1,1,2,3,5,8,13,21,34,55,89,144……
#include <stdio.h>
int main()
{
int fibonacci(int num);
int a, i;
printf("请输入需要输出斐波那契数列的个数:");
scanf("%d", &a);
for (i = 1; i < a; i++)
printf("%d ", fibonacci(i));
printf("\n");
}
int fibonacci(int num)
{
if (num < 2)
return 1;
else
return fibonacci(num - 1) + fibonacci(num - 2);
}
题二、
一个人赶着鸭子去每个村庄卖,每经过一个 村子卖去所赶鸭子的一半又一只。 这样他经过了 七个村子后还剩 两只鸭子,问问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?
#include <stdio.h>
int main()
{
int sell(int num);
int i=0,j = 0;
printf("最开始有%d\n", fun(7));
for (i = 6;i > 0;i--)
{
printf("第%d个村子卖了%d只鸭子\n", i, sell(i) - sell(i + 1));
}
return 0;
}
int sell(int num)
{
if (num <= 0)
{
return 2;
}
else
{
return (sell(num - 1) + 1) * 2;
}
}
用i--反向求卖的鸭子数。