JAVA中的递归方法应用

原创 2006年05月30日 11:48:00

之前在CSDN中见到过一个运输问题,问题如下:

现有1辆车,10桶油,车自带一油箱,油箱容量恰为一油桶容量,每一桶油可以让车跑1公里,而车上每次只能带一个油桶,初始条件为油桶和车现在同一起跑位置,车上油箱中满油,而油桶里的油可以倒到车的油箱,反之亦可以。问用JAVA实现这个过程,求出车可以用这些油最多跑多远。

这个题在数学里属于优化类的题目,但是这个题出现在面试的时候,那么个人认为这个题的目的不是考查你的数学能力,加之用JAVA实现,显然它考查的是程序设计能力。故把这个问题的模型进行抽象化为JAVA中的递归问题。

思路:可以考虑每次让车用一桶油将剩余油向前运送一定距离,这样就可以用递归方法求解。用JAVA实现如下:

int bucketNum = 11;//初始油问题为11桶(加油箱中油)
int distance = 0;//车的运输距离
public int transit(int bucketNum )
{
 if(bucketNum==2)
 {
  distance += 2;//如仅剩两桶油可以直接跑完
  return distance;
 }
 else
 {
  distance += 1/(2*bucketNum - 3);//车用一桶油把其余油向前运送的距离
  distance += transit(bucketNum--);
 }
}

【JAVA】23、方法的递归调用

本篇介绍方法的递归调用
  • omoiato
  • omoiato
  • 2016年02月28日 23:11
  • 2479

Java实现简单的递归操作

在数据结构算法设计中,或者一个方法的具体实现的时候,有一种方法叫做“递归”,这种方法在思想上并不是特别难,但是实现起来还是需要有一些需要注意的。虽然对于很多递归算法都可以由相应的循环迭代来代替,但是对...

Java中的递归原理分析

参加工作已经三四年了,再回头来看这些很基础的东西,觉得理解又深入了一层! 解释:程序调用自身的编程技巧叫做递归。 程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设...

java 递归函数

一、递归函数,通俗的说就是函数本身自己调用自己...  如:n!=n(n-1)!  你定义函数f(n)=nf(n-1)  而f(n-1)又是这个定义的函数。。这就是递归  二、为什么要用递...

java的递归实现原理

打印5的阶乘 5! 1.普通方法实现 package cn.itcast.digui; public class DiGuiDemo { public static void main(Str...

java递归简单实例

程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为...
  • mtlmzb
  • mtlmzb
  • 2015年03月16日 09:16
  • 3416

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

java递归算法总结

1.何为递归 个人理解就是自己调用自己,直到满足一个条件结束自己调用自己的过程,这个就是递归。举一个通俗的点的例子: 假设你在一个电影院,你想知道自己坐在哪一排,但是前面人很多,你懒得去数了,于是你问...

JAVA菜鸟入门篇 - 方法定义、递归结构(六)

1、方法定义  Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式为:          [修饰符1  修饰符2  …..] 返回值类型  方法...

java数据结构与算法之递归思维(让我们更通俗地理解递归)

汉诺塔的问题 数学归纳法的思维 递归算法的思考方式 斐波那契数列中的递归思想 再谈递归图形...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA中的递归方法应用
举报原因:
原因补充:

(最多只允许输入30个字)