题目出处

思路:肯定打表啊! 用一个数组arr[]存储每次拆分的结果,满足条件就输出,不断再原来数组基础上进行搜索即可,不过要注意输出的数是从小到大的,因此我们可以用一个变量zz记录每次存进arr[]的数,下一次搜索从这个数开始即可,这样就解决了从小到大的问题。

代码一看就懂:

package search;import java.util.Scanner;public class P2404 {static int n,arr[];//arr存储不同拆分方式的数组public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();arr = new int[n];dfs(0, 0,1);}/*** @param zz     由于输出的数是从小到大的,因此zz用来记录每次存到arr里的数,下一次搜索从zz开始搜即可,这样就可以解决从小到大输出的问题* @param sum 目前已经拆分的和* @param index arr最后一个数的索引*/public static void dfs(int sum, int index, int zz) {if (sum == n) {for (int i = 0; i < index-1; i++) {//输出除最后一个外所有前面的System.out.print(arr[i]+"+");}System.out.println(arr[index-1]);//输出最后一个return;}if (sum > n) {//和加过头就直接返回return;}for (int i = zz; i <= n - 1; i++) {//每次从zz开始,搜到n-1arr[index] = i;//存储dfs(sum+i, index+1, i);//进行下一次搜索,sum+i,索引+1
//          arr[index] = 0;//回溯:搜索完成后把index的arr值重新设为0,供其余拆分方法使用//其实回溯可要可不要,因为每次输出的是前index个值,上一次拆分的index后面的值就算不重置对输出也毫无影响}}
}

洛谷P2404 Java解法相关推荐

  1. 洛谷P2678 Java解法

    题目出处点这里 思路: 形如求最小值的最大值以及求最大值的最小值都可以二分求解. 就像这道题,求最短的跳跃距离尽可能长(就是求最小值的最大值),注意到跳跃距离肯定在1至L之间,于是问题就变为在1~L之 ...

  2. 洛谷P2298 Java解法

    题目出处点这里 很明显又是广搜模板题 代码: package search;import java.awt.Point; import java.util.LinkedList; import jav ...

  3. 洛谷P1618 Java解法

    题目出处:https://www.luogu.com.cn/problem/P1618 思路: 从结果入手 先在123-987中找到满足A:B:C的三个数 再判断三个数的各个数字是否有重复的 pack ...

  4. 深度优先搜索——自然数的拆分问题(洛谷 P2404)

    题目选自洛谷P2404 题目显然是用DFS来做,需要注意的是 结果是从小到大的,所以同一种答案不同位置都只算一种,所以在dfs的时候 我们每次从上一次的值开始搜索即可. 用数组p[9]的1-8下标位置 ...

  5. 洛谷P2404 自然数的拆分问题(回溯)

    洛谷P2404 自然数的拆分问题(回溯) #洛谷P2404 自然数的拆分问题(回溯)# 参考题解:https://www.luogu.com.cn/blog/CM0/solution-p2404 (第 ...

  6. P1164 小A点菜(DP动态规划,洛谷,java)

    洛谷链接:https://www.luogu.org/problem/P1164 i写成了j,改了nnnnn久!!!! import java.util.Scanner; class Main{pub ...

  7. P1002 过河卒(dp动态规划,洛谷,java)

    洛谷链接:https://www.luogu.com.cn/problem/P1002 import java.util.Scanner;public class Main { public stat ...

  8. 【寒假每日一题】洛谷 P2404 自然数的拆分问题

    题目链接:P2404 自然数的拆分问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 任何一个大于 1 的自然数 n,总可以拆分成若干个小于 n 的自然数之和.现在给你一 ...

  9. P2392 kkksc03考前临时抱佛脚(洛谷)JAVA

    题目背景 kkksc03 的大学生活非常的颓废,平时根本不学习.但是,临近期末考试,他必须要开始抱佛脚,以求不挂科. 题目描述 这次期末考试,kkksc03 需要考 4 科.因此要开始刷习题集,每科都 ...

最新文章

  1. 2019微生物组—宏基因组分析专题培训第三期
  2. 【Python】分享几个用Python给图片添加水印的方法,简单实用
  3. Spring Cloud Zuul The 'Access-Control-Allow-Origin' header contains multiple values
  4. PHP连接sql seaver数据库
  5. JDK源码解析之 java.lang.Exception
  6. threadlocal存连接对象的目的_终于懂了ThreadLocal,不再害怕面试官问了
  7. Protobuf3教程
  8. Python优雅地可视化数据
  9. python入门经典100题-Python3基础训练经典100题(带答案)下载
  10. Centos 7 下配置codeblocks13.12的googletest单元测试环境
  11. 重要且紧急:总以为这是最后一个短板,新的短板又出现了
  12. springboot实现权限列表_SpringBoot+shiro+mybatis+Thymeleaf实现权限登录
  13. 中山大学计算机学院官网万海,中山大学
  14. C语言入门了解篇—C语言编译流程
  15. pdf 分形 张济忠_清华大学出版社-图书详情-《分形(第2版)》
  16. 主机甲和主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧......[数据传输率]错题总结
  17. 电信aep平台是什么意思_亚马逊电商平台是什么意思?亚马逊注册技巧
  18. 仓库摆放示意图_仓库布局,搞懂这两张图就够了!
  19. AFX_MODULE_STATE作用
  20. Android开发————简易App设计(一)

热门文章

  1. ESP8266的sta+ap模式
  2. oracle语句中dual什么意思,oracle中dual详解
  3. 计算机应用行距怎么弄,电脑行间距在哪里设置
  4. HTML(表单标签<form>)
  5. USER_用户_数据库知识点
  6. AGC001E BBQ Hard [dp]
  7. HTTPS是什么幺蛾子
  8. leetcode:面试题 08.12. 八皇后【dfs + backtrack】
  9. linux下通过串口ftp,eftp简单文件传输工具支持串口、网络、Windows、Linux、单片机平台-博客...
  10. 奇瑞鲍思语:未来新能源小车出行发展潜力巨大