关于吃糖果问题,一直糖果个数,以及每天能吃的个数求能有多少个方案

2024-02-14 17:30

本文主要是介绍关于吃糖果问题,一直糖果个数,以及每天能吃的个数求能有多少个方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

是一个动态规划问题但是没学过,递归也可以解决

package demoSix;

import java.util.Scanner;

/*
*@author:张文波
*@time2020年4月22日上午10:43:48
*/

public class TangGuoWenTi
{

    // 定义一个用于存储每天吃糖的个数的数组
    public static int eatNum[];
    public static int pos = 0;//天数
    public static int count=0;//吃的数量
    public static int GeShu=0;

    public static void main(String[] args)
    {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入糖果的个数,0~20");
        int num = s.nextInt();
        
        // 边界检测
        while (num > 20 || num < 0)
        {
            System.out.println("请输入糖果的个数,0~20");
            num = s.nextInt();
        }
        eatNum = new int[num];
        GeShu=num;
        calc(num);

    }

    // 本方法用于递归求解的方法
    public static void calc(int num)
    {
        if(count>GeShu) {
            //如果吃的个数大于了给的,那么把吃的吐出来,并且返回的上层
            eatNum[pos-1]=0;
            return;
        }
        if (num<=0)
        {
            //如果糖果个数等于0了说明吃完了
            for (int n : eatNum)
            {
                System.out.print(n + " ");

            }
            System.out.println();
            return;
        }
        for(int i=1;i<=GeShu;i++) {
            eatNum[pos]=i;
            pos++;
            count+=i;
            calc(num-i);
            count-=i;
            pos--;
        }
    }

}
-----------------------------------------------------------------运行结果----------------------------------------------------------------------------

这篇关于关于吃糖果问题,一直糖果个数,以及每天能吃的个数求能有多少个方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709140

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据