题目:编程求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来。

分析:分治的思想。可以把问题(m,n)拆分(m - n, n -1)和(m, n - 1)。

注意点:1、n大于m时,可直接从n = m出开始搜索

    2、结束条件:n < 1 || m < 1

    3、打印输出结果。注意打印输出结果并不代表函数调用结束,以n = 7 和 m = 10为例,7、3和7、2、1都是一种结果,不能得到7、3的时候终止。打印输出的条件是n = m

程序代码如下:

public class FindSum {// used as a stack to save the resultprivate static LinkedList<Integer> list = new LinkedList<Integer>();public static void findSum(int sum, int n) {if (n < 1 || sum < 1)return;if (sum < n)n = sum;if (sum == n) {for (int i = 0; i < list.size(); i++)System.out.print(list.get(i) + " ");System.out.print(sum);System.out.println();}list.addLast(n);findSum(sum - n, n - 1);list.removeLast();findSum(sum, n - 1);}public static void main(String[] args) {int sum = 10;int n = 8;findSum(sum, n);}
}

转载于:https://www.cnblogs.com/yunger/p/7550007.html

输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m 转载相关推荐

  1. 算法--中兴面试:输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数, 使其和等于 m

    转载请注明原文出处:http://blog.csdn.net/baidu_37107022/article/details/75125846 Q题目 编程求解 输入两个整数 n 和 m,从数列1,2, ...

  2. 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,使其和等于 m

    转载自:http://blog.sina.com.cn/s/blog_7571423b01016707.html 编程求解:输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随 ...

  3. C++实现输入两个整数n和m,从数列1,2,3...n中随意取几个数,使其和等于m,要求列出所有的组合

    题目:C++实现输入两个整数n和m,从数列1,2,3...n中随意取几个数,使其和等于m,要求列出所有的组合 用到了组合的思想 #include<iostream> #include< ...

  4. 输入两个整数n和m,从1-n中随意取几个数,使其和等于m

    编程求解,输入两个整数n和m,从数列1,2,3,--n中随意取几个数,使其和等于m.要求将所有的可能组合列出来. 求解思路: 1.首先判断,如果n>m,则n中大于m的数不可能参与组合,此时置n ...

  5. ACMNO.31 C语言-宏求余 输入两个整数,求他们相除的余数。用带参的宏来实现,编程序。

    题目描述 输入两个整数,求他们相除的余数.用带参的宏来实现,编程序. 输入 a b两个数 输出 a/b的余数 样例输入 3 2 样例输出 1 来源/分类 C语言 题目截图: 思路: 这个是求余数,应该 ...

  6. ACMNO.7 输入两个正整数m和n,求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35

    题目描述 输入两个正整数m和n,求其最大公约数和最小公倍数. 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35 来源/分类 C语言 示例照片: 设计思路: 本题最难的 ...

  7. python输入两个整数按先大后小的顺序输出_指针变量:输入a和b两个整数,按先大后小的顺序输出a和b。...

    #include int main() { int *p1,*p2,*p,a,b; printf("please enter two integer numbers:"); sca ...

  8. ytu 1057: 输入两个整数,求他们相除的余数(带参的宏 + 模板函数 练习)

    1057: 输入两个整数,求他们相除的余数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 177  Solved: 136 [Submit][Stat ...

  9. 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。

    题目:输入两个整数序列.其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序.为了简单起见,我们假设push序列的任意两个整数都是不相等的. 比如输入的push序列是1.2.3 ...

最新文章

  1. php+mysql 大容量数据高效分页效果(弃用limit)
  2. office 2007全屏快捷键|设置
  3. git学习笔记(四)—— 分支管理
  4. 【ASP.NET Core快速入门】(九) RoutingMiddleware介绍以及MVC引入
  5. python构建网站flask_30分钟搭建Python的Flask框架并在上面编写第一个应用
  6. Linux opencv安装与编译
  7. OpenWrt——Could not lock /var/lock/opkg.lock: Resource temporarily unavailable.
  8. 基于java的社交网站毕业设计_软件工程毕业设计_社交网站.pdf
  9. idea package自动生成_懒人必备,IntelliJ IDEA中代码一键生成
  10. java annotation应用_java Annotation的应用
  11. 【quickhybrid】JSBridge的实现
  12. 前端学习(1580):初始react
  13. 计算机win7内容已满,Win7旗舰版电脑C盘满了怎么清理
  14. vue jsx 使用 自定义组件
  15. 狗窝里的小日子- 3 ...
  16. 巴菲特:我们会在中国找到机会
  17. C++编程 中文转换成Unicode
  18. 程序员必读书籍及导读指南
  19. WINDOWS2003五种备份模式详解
  20. 如何在透视表中同时显示客户编码和客户名称

热门文章

  1. L2-026 小字辈-PAT团体程序设计天梯赛GPLT
  2. 全局变量只能初始化不能赋值
  3. mysql期中考试题及答案_MySQL数据库考试试题与答案
  4. 判断用户 小程序_解读微信小程序用户运营四部曲
  5. 联合索引会创建几个索引_联合索引在B+Tree上的存储结构及数据查找方式
  6. 正则表达式的贪婪匹配与懒惰匹配
  7. Android开发实践:自定义ViewGroup的onLayout()分析
  8. 在jquery的ajax方法中的success中使用return要注意的问题
  9. iOS——使用StroryBoard页面跳转及传值
  10. Javascript 钩子机制——开会得出的结论