11月10号作业

本文探讨了如何用递归实现斐波那契数列,并通过实例解决了一道关于卖鸭子问题的动态规划题目。通过代码展示和运行结果,解析了算法过程和结果背后的数学逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

1、递归实现斐波那契数列,1,1,2,3,5,8,13,21,34,55,89,144……
2、一个人赶着鸭子去每个村庄卖,每经过一个 村子卖去所赶鸭子的一半又一只。 这样他经过了 七个村子后还剩 两只鸭子,问问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?

代码:

#include<stdio.h>                                            
int f(int n);
int duck(int n);
int main(int argc, const char *argv[])
{
/****题目一****/
#if 0
    int num;
    scanf("%d",&num);
    for(int i=1;i<=num;i++)printf("%d ",f(i));
#endif
/****题目二****/
#if 1
    printf("一共有%d个鸭子\n",duck(7));
    for(int i=7;i>0;i--)printf("第%d个村子卖了%d只\n",8-i,duck(i)-duck(i-1));

#endif
    return 0;
}
int f(int n)
{
    if (n==1||n==2)return 1;
    return f(n-1)+f(n-2);
}
int duck(int n)
{
    if(n==0)return 2;
    return (duck(n-1)+1)*2;
}                                                                                            

运行结果:

结果一:
ubuntu@ubuntu:~$ gcc day7.c -o day7
ubuntu@ubuntu:~$ ./day7
20
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 

结果二:
ubuntu@ubuntu:~$ gcc day7.c -o day7
ubuntu@ubuntu:~$ ./day7
一共有510个鸭子
第1个村子卖了256只
第2个村子卖了128只
第3个村子卖了64只
第4个村子卖了32只
第5个村子卖了16只
第6个村子卖了8只
第7个村子卖了4只

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值