0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言中苹果装盘问题解答

C语言编程学习基地 来源:C语言编程学习基地 作者:C语言编程学习基地 2021-11-17 09:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、问题提出

问题:把m个苹果放入n个盘子中,允许有的盘子为空,共有多少种方法?

注:

5,1,1和1 5 1属同一种方法

m,n均小于10

二、算法分析

设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论,

当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m)

当n<=m:不同的放法可以分成两类:

有至少一个盘子空着,即相当于f(m,n) = f(m,n-1);

所有盘子都有苹果,相当于可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,即f(m,n) = f(m-n,n).而总的放苹果的放法数目等于两者的和,即 f(m,n) =f(m,n-1)+f(m-n,n)

递归出口条件说明:

当n=1时,所有苹果都必须放在一个盘子里,所以返回1;

当m==0(没有苹果可放)时,定义为1种放法;

三、程序设计

#include 
#include int appledivide(m,n);int main(){    int m,n;    printf("请输入苹果和盘子个数(均小于10):
");    scanf("%d%d",&m,&n);    if(m<10&&n<10)    {        int result = appledivide(m,n);        printf("将%d苹果,放入%d个盘子,共有%d中方法",m,n,result);    }    else        printf("苹果或盘子个数应小于10");    return 0;}int appledivide(m,n){  // 如果碟子只有1个,无论苹果有多少个都只有一种放法    if(m==0||n==1)    {        return 1;    }    //如果碟子的个数大于苹果的个数    if(n>m)    {        return appledivide(m,m);    }    else    {        return appledivide(m,n-1) + appledivide(m-n,n);    }}

责任编辑:haq


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146146
  • 编程
    +关注

    关注

    90

    文章

    3723

    浏览量

    97434

原文标题:C语言习题:苹果装盘问题!用递归如何求解?

文章出处:【微信号:cyuyanxuexi,微信公众号:C语言编程学习基地】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    晶科能源Tiger Neo 3.0的问题解答(10)

    近期,晶科飞虎3(Tiger Neo 3.0)组件在直播和后台留言中频频被提到组件“弱光”相关的提问,因此,小编整理了大家最为关心的问题解答,同时,相关问题也同步在了官网上,方便大家查阅。
    的头像 发表于 04-24 14:36 189次阅读

    示波器常见问题解答 (FAQ)

    示波器是电子工程师不可或缺的“眼睛”,它能将看不见的电信号转化为可视的波形图像,帮助我们洞察电路的运行状态。为了帮助您更高效、安全地使用这一工具,我们整理了以下常见问题与解答。   1.
    的头像 发表于 02-02 18:21 647次阅读
    示波器常见<b class='flag-5'>问题解答</b> (FAQ)

    请问C语言中整形溢出的解决方法有哪些?

    C语言中整形溢出的解决方法有哪些?
    发表于 12-29 07:33

    单片机c语言中定义字节怎么定义?

    定义位可以用***it但是定义字节呢?还有就是比如汇编中的DPTR的DPH和DPL在c语言中怎样定义的呢?
    发表于 12-29 06:32

    请问C语言中整形溢出会产生哪些异常行为?

    C语言中整形溢出会产生哪些异常行为?
    发表于 12-26 07:05

    请问C语言中整形溢出对哪些应用场景影响较大?

    C语言中整形溢出对哪些应用场景影响较大
    发表于 12-24 08:24

    Typedef在C语言中的应用

    Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子: #define dPS struct s * typedef
    发表于 12-22 13:53

    C语言中可以嵌套汇编语言吗?

    请问C语言中可以嵌套汇编语言吗?
    发表于 12-15 08:14

    四探针法测电阻的原理与常见问题解答

    法甚至被用作校正其他方法的基准。下文,Xfilm埃利将系统阐述四探针法的基本原理,并对实际应用中遇到的常见问题进行详细解答。四探针法测电阻的基本原理/Xfilm1
    的头像 发表于 12-04 18:08 1421次阅读
    四探针法测电阻的原理与常见<b class='flag-5'>问题解答</b>

    先收藏系列 工业相机的六问六答!

    工业相机常用问题解答
    的头像 发表于 10-22 09:26 522次阅读
    先收藏系列 工业相机的六问六答!

    晶科能源Tiger Neo 3.0的问题解答(1)

    自晶科Tiger Neo 3.0 产品AI助手上线以来,后台咨询量飙升!看来大家对我们的旗舰产品——Tiger Neo 3.0 充满了好奇与期待。我们认真梳理了大家问得最频繁、最热门的问题,进行解答
    的头像 发表于 08-20 14:09 1020次阅读

    Windows环境下32位汇编语言中文资料

    电子发烧友网站提供《Windows环境下32位汇编语言中文资料.rar》资料免费下载
    发表于 06-30 15:14 0次下载

    汽车喇叭气密性检测仪常见问题解答

    在汽车生产和检测环节,汽车喇叭气密性检测仪起着至关重要的作用。以下是一些关于它的常见问题解答。(1)检测仪的精度受哪些因素影响?检测仪的精度主要受环境因素、仪器本身的稳定性以及被测喇叭的特性
    的头像 发表于 06-25 11:52 773次阅读
    汽车喇叭气密性检测仪常见<b class='flag-5'>问题解答</b>

    变频器与传动使用的常见问题解答

    变频器与传动系统作为工业自动化领域的核心设备,其稳定运行直接影响生产效率和设备寿命。以下是针对实际应用中高频问题的系统性解答,结合技术原理与现场经验,为从业者提供实用参考。 一、电机过热问题解析 某
    的头像 发表于 06-10 07:35 895次阅读
    变频器与传动使用的常见<b class='flag-5'>问题解答</b>

    深入理解C语言C语言循环控制

    改变程序的执行流程,使代码更加灵活和可控。本文将详细介绍这些语句的作用及其应用场景,并通过示例代码进行说明。Part.1break语句C语言中break语句有两种
    的头像 发表于 04-29 18:49 2222次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>C</b><b class='flag-5'>语言</b>循环控制