
递归
Java硬件工程师
中国科学技术大学毕业,原支付宝Java开发工程师,立志做一名资深全栈工程师
展开
-
程序设计与算法----递归之神奇的口袋
问题描述问题描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40John现在有n(1<=n<=20)个想要得到的物品,每个物品的体积分别是a1,a2,…an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式输入输入的第一行是正整数n(1<=n<=20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数原创 2020-08-09 19:49:54 · 1718 阅读 · 0 评论 -
递归之数字三角形问题
问题描述在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或者右下走。只需要求出这个最大和即可。不必给出具体路径。三角形的行数大于1小于等于100,数字为0-99输入格式5 //三角形行数。下面是三角形73 88 1 02 7 4 44 5 2 6 5要求输出最大和递归解决算法思想用二维数组存放数字三角形D(r,j):第r行第j个数字(r,j从1开始算)MaxSum(r,j):从D(r,j)到底边的各条路径中,最佳路径的数字原创 2020-08-05 16:16:08 · 2920 阅读 · 0 评论 -
程序设计与算法----递归之n皇后问题
问题描述例题:n皇后n皇后问题:输入整数n,要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击(即n个皇后可以横着吃,斜着吃,竖着吃。),输出全部方案。输入一个正整数N,则程序输出N皇后问题的全部摆法输出结果里的每一行都代表一种摆法。行里的第i个数字如果是n,就代表第i行的皇后应该放在第n列。皇后的行、列编号都是从1开始算。样例输入4样例输出2 4 1 33 1 4 2算法思想定义全局变量N,表示N个皇后要摆放,数组queenPos[100],表示最多是100个元素,第原创 2020-08-03 19:07:44 · 2149 阅读 · 0 评论 -
程序设计与算法----递归之放苹果问题
问题描述例题:放苹果把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问公有多少种不同的分法?5,1,1和1,5,1是同一种分法输入第一行是测试数据数目t(0<=t<=20),以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10输入第一行是测试数据的数目t(0<=t<=20)。以下每行均包含两个整数M和N。以空格分开,1<=M,N<=10对输入的每组数据M和N.用一行输出相应的K样例输入17 3样例输出8算原创 2020-08-03 16:09:43 · 2080 阅读 · 1 评论 -
程序设计与算法----递归汉诺塔问题
汉诺塔古代有一个梵塔,塔内有三个座A,B,C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移动到C座,但每次只能允许移动一个盘子,并且在移动的过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求输出移动的步骤。算法思想:这是一个典型的递归的问题,将A座盘子移动到C座,用B座做中转,这个问题可以分解成,先把n-1个盘子移动到B座,然后再把剩下的一个盘子移动到C座,然后再把B座上的n-1个盘子移动到C座,把n-1个盘子从A座移动原创 2020-08-03 10:39:40 · 2026 阅读 · 0 评论 -
程序设计与算法----递归之爬楼梯问题
爬楼梯树老师爬楼梯,它可以每次走1级或者2级,输入楼梯的级数,求不同的走法数例如:楼梯一共有3级,它可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共有3种走法输入输入包含若干行,每行包含一个正整数N,代表楼梯级数,1<=N<=30输出不同的走法数,每一行输入对应一行样例输入5810样例输出83489#include<iostream>using namespace std;#define MAXSIZE原创 2020-07-28 21:17:36 · 2339 阅读 · 0 评论