Tag: 递归

Java递归问题

我在Java中有一个递归面试问题,需要你的帮助。 编写一个**Java function** ,使得::给定一个整数数组,是否可以将整数分成两组,这样两个组的总和是相同的,具有这些约束:所有的值都是5的倍数必须在一个组中,并且所有3的倍数(而不是5的倍数)必须在另一个中。 (不需要循环。) split53({1,1}) → true split53({1, 1, 1}) → false split53({2, 4, 2}) → true PS:这是hewlett packard的采访问题

Java – 递归程序 – 将基数为10的数字转换为任何基数

我试图通过使用转换将基数10转换为任何基数。 现在这是我提出的代码。 我有一种悲伤的感觉,这可能是完全错误的。 下图是一个如何进行此过程的示例。 http://sofzh.miximages.com/java/rrrr.png public static void main(String[] args) { int base; int number; Scanner console = new Scanner(System.in); System.out.println(“Please enter the base”); base = console.nextInt(); System.out.println(“Please enter the Number you would like to convert”); number = console.nextInt(); System.out.println(Converter(base, number)); } public static int Converter(int Nbase, int Nnumber){ int answer; int Rcontainer =0; int […]

为什么递归方法在Java中通常是静态的?

这些天我正在审查递归,发现很多Java递归方法样本都是静态的。 有人能解释一下原因吗? 我的猜测是他们想要节省内存,因为逻辑上“父”递归方法只要其子递归方法正在运行并且还没有返回任何内容就会保持愚蠢。 另外请检查以下猜测是否正确: 静态递归方法在同一个线程上运行,而非静态方法可以在不同的线程上运行,这是正确的还是没有任何意义?

使用Java通过FTP将所有目录复制到服务器

我需要将目录从本地磁盘复制到服务器。 该目录包含许多目录,子目录和文件。 (想想目录的层次结构树)。 以下是复制一个文件的示例: public void saveFilesToServer() throws IOException { FTPClient ftp = new FTPClient(); ftp.connect(ftp.foobar.com); if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) { ftp.disconnect(); log.fatal(“FTP not disconnected”); } ftp.login(“foo”, “qwerty”); log.info(“Connected to server .”); log.info(ftp.getReplyString()); ftp.changeWorkingDirectory(“test”); ftp.makeDirectory(“somedir”); ftp.changeWorkingDirectory(“somedir”); ftp.setFileType(FTPClient.BINARY_FILE_TYPE); java.io.File srcFolder = new java.io.File(folderPath); FileInputStream fis = new FileInputStream(srcFolder); ftp.storeFile (fileName, fis); ftp.disconnect(); log.info(“FTP disconnected”); } 现在,我需要复制一个目录( somedir )与somedir所有子目录和文件。 […]

Java中旅行商问题的powershell算法

我正在为学校的数学课做一个项目,我选择了我的旅行推销员问题,我一直想调查更多。 但是,我的蛮力解算算法存在问题。 * 请转到底部的更新以查看最新版本的代码 如果您知道旅行销售员问题是什么,请跳过此段:尽可能总结一下,TSP是这样的:您是一个想要访问某个地区的每个城市的推销员(一个城市基本上是地图上的一个点) 。 在有界x和y区域中有’n’个城市,每个城市都与每个城市相连(通过直线道路)。 您需要在城市中找到允许您访问每个城市的最短路径。我想要使用的其中一种算法(我需要测试其他算法)是Brute Force,它检查每条可能的路线并返回最短的路线路线。 这并不总是使用的原因是因为它需要我们检查(n-1)! 可能的路线,随着’n’的增加,这个数字会变得很大 – 事实上,只有50个城市,那将是608281864034267560872252163321295376887552831379210240000000000路线要检查。 假设我们将使用4个城市的任意区域 (尽管该算法可以处理n个城市。我们也不关心距离 – 我们希望以粗暴的方式击中每条可能的路线)力)。 这是一个简单的图片演示我正在谈论的内容(4个城市是我开始检查过程是否正常工作) 与城市的地图的图片 这是Brute Force算法(假设所有其他被调用的方法都正常工作,因为他们这样做): (请查看下面的更多解释) [码] public void BruteForceFindBestRoute(Route r) //Must start r having 1 unflagged city to begin with { if(!r.allFlagged() && r.route.size() != m.cities.size()) { /*STEP 1 Begin with last unflagged city*/ City pivot = r.lastCityAdded(); […]

如何将一组矩形分组到连接区域的“岛屿”中?

问题 我有一个java.awt.Rectangle数组。 对于那些不熟悉这个类的人来说,重要的信息是它们提供了一个.intersects(Rectangle b)函数。 我想编写一个函数来获取这个Rectangle数组,并将其分解为连接的矩形组。 让我们举例说,这些是我的矩形(构造函数接受参数x , y , width , height ): Rectangle[] rects = new Rectangle[] { new Rectangle(0, 0, 4, 2), //A new Rectangle(1, 1, 2, 4), //B new Rectangle(0, 4, 8, 2), //C new Rectangle(6, 0, 2, 2) //D } 快速绘图显示A相交B和B相交C.D不相交。 一个繁琐的ascii艺术作品也完成了这项工作: ┌───────┐ ╔═══╗ │A╔═══╗ │ ║ D ║ └─╫───╫─┘ ╚═══╝ […]

Java编程:楼梯动态编程示例

一个人正在爬楼梯,有n个台阶,可以一次走1步,2步或3步。 现在编写一个程序来计算孩子跑楼梯的可能方式。 给出的代码如下 public static int countDP(int n, int[] map) { if (n-1) return map[n]; else { map[n] = countDP(n-1, map) + countDP(n-2, map) + countDP(n-3, map); return map[n]; } } 我知道C和C ++,而不是JAVA。 这是来自Cracking the Coding的采访书。 任何人都可以解释一下 为什么以及如何在这里使用function图? 这里的地图是arrays吗? 我没有看到任何行保存输入到地图数组,但它会如何返回一些东西? 有人知道这段代码的C ++或C版本吗? 很难理解这段代码。 也许不是因为JAVA语法,而是动态编程的隐式结构。 这个算法的时间复杂度是多少? 它应该小于O(3 ^ n)? 我将不胜感激。 多谢你们

如何递归地嵌套for循环?

我有一个必须执行以下操作的方法: for (int a01 = 1; a01 <= 25; a01++) { for (int a02 = a01 + 1; a02 <= 25; a02++) { for (int a03 = a02 + 1; a03 <= 25; a03++) { … System.out.println(a01 + "," + a02 + "," + … + "," + a015); } } } 我想指定嵌套的数量(在上面的例子中,我想要15嵌套)。 有没有办法在这里使用递归编程?

你能快点告诉我这个伪代码是否有意义吗?

我相信我的代码现在是万无一失的。 我现在会写出伪代码。 但我确实有一个问题。 为什么DRJava要求我在if语句之外返回一些东西? 正如你所看到我为前写的:“返回1;” 只是因为它问。 但它永远不会返回那个值。 谁可以给我解释一下这个? public class assignment1question2test { public static void main(String[] args) { int[] a = new int[50]; int l = 0; int r = a.length; for(int i=0; i<r; i++) { a[i] = 1; } a[0] = 10; for (int i=0; i<r; i++) { System.out.println(a[i]); } System.out.print(recursiveSearch(a,l,r)); } public static […]

创建类对象来进行阶乘递归?

我被分配了一个问题,使用递归编写程序,这是正常工作,我唯一的问题是它被指定创建一个类对象来进行析因计算而不是方法…我这样做对吗? import java.util.*; import java.io.*; public class Assignment2A { public static void main(String[] args){ Scanner scan = new Scanner(System.in); //sets up scanner boolean correct = true; //sets up boolean operation while(true){ try{ //try catch operation System.out.println(“Welcome to the factorial function”); System.out.println(“Please enter a number or press 0 to exit”); long startTime =System.nanoTime(); System.out.println(“Start Time: “+startTime+” […]