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

    文章

    7642

    浏览量

    144719
  • 编程
    +关注

    关注

    90

    文章

    3709

    浏览量

    96837

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    车载功放芯片选型高频问题解答,看完秒懂)

    着新手,就连资深从业者也可能陷入误区。 针对这些高频问题,深智微科技结合华润微 CD7377CZ 与 CD7388 两款标杆芯片的特性,为您一一解答,帮您快速理清选型思路。作为华润微授权代理商,我们
    发表于 12-09 09:27

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

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

    C语言的分支结构介绍

    1.简单if语句 C语言中的分支结构语句中的if条件语句。 简单if语句的基本结构如下: 代码语言:javascript if(表达式) { 执行代码块; } 其语义是:如果表达式的值为真,则执行其后的语句,否则不执
    发表于 11-25 07:48

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

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

    示波器问题解答干货

    第一问:示波器的波形代表什么意义? 一句话概括:水平坐标代表时间,垂直坐标代表电压(一般是电压),电压随时间变化的曲线就是示波器显示的波形。 垂直坐标比较好理解,就是电压的大小。水平坐标代表时间,有很多人被绕了进去,但是只要注意以下一点就可以了: 注意:示波器是一个实时工具,示波器显示的,就是当前时刻正在发生的。 为什么要强调这个问题呢?因为曾经有人问我:我的示波器怎么这么慢,显示一条波形要等十几秒钟,作
    的头像 发表于 10-13 14:51 597次阅读
    示波器<b class='flag-5'>问题解答</b>干货

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

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

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

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

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

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

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

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

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

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

    常见问题解答:低压运算放大器

    本应用笔记解答了一些关于低压运算放大器的常见问题。
    的头像 发表于 02-21 14:10 906次阅读
    常见<b class='flag-5'>问题解答</b>:低压运算放大器

    【斯丹麦德电子】常见问题解答:干簧继电器在测试与测量中的应用

    电子发烧友网站提供《【斯丹麦德电子】常见问题解答:干簧继电器在测试与测量中的应用.pdf》资料免费下载
    发表于 01-20 10:44 0次下载

    SiC模块应用的问题解答

    碳中和背景下,绿色能源市场迎来了诸多机遇。新能源发展已进入全新的阶段,风能、光能作为新能源领域的先锋力量,正在以快速的增长态势推动这场绿色能源革命。
    的头像 发表于 01-16 09:17 1371次阅读

    EE-62:在C语言中访问短字内存

    电子发烧友网站提供《EE-62:在C语言中访问短字内存.pdf》资料免费下载
    发表于 01-07 14:02 0次下载
    EE-62:在<b class='flag-5'>C</b><b class='flag-5'>语言中</b>访问短字内存

    EE-128:C语言中的DSP:从C调用汇编类成员函数

    电子发烧友网站提供《EE-128:C语言中的DSP:从C调用汇编类成员函数.pdf》资料免费下载
    发表于 01-07 13:48 0次下载
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>语言中</b>的DSP:从<b class='flag-5'>C</b>调用汇编类成员函数