Java递归分析
递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。
关键要抓住的是:
(1)递归出口
(2)地推逐步向出口逼近
例子:
example: 求5的阶乘。。
如下:
public class Test {
static int multiply(int n){
if(n==1||n==0)
return n;
else
return n*multiply(n-1);
}
public static void main(String[] args){
System.out.println(multiply(10));
}
}
上面的multiply是一个阶乘的例子。其实递归递归,从字面上解释就是在方法本身调用自己的方法,或者间接调用;看上面的程序,拿multiply(5)来说:
n=5;执行 5*multiply(4);
--------------------
这时候看multiply(4)
n=4 执行 4*multiply(3);
-------------------
看multiply(3)
n=3,执行 3*multiply(2);
---------------
mulitply(2);
n=2 执行 2*mulitply(1);
这时候,return 1;往上返回
2*1向上返回
3*(2*1)向上返回
4*(3*(2*1)) 向上返回
5*(4*(3*(2*1)) ) = 120
所以程序输出120;
这事简单的递归的例子;所以可以看出来递归的关键得有递归出口(本体的If语句),还有递归方法;
以下是我在百度知道碰到一个朋友的提问,也是关于递归算法的:
------------------------问题------------------------------
本人刚学JAVA,没有任何编程基础,各位高手见笑。
public class Count
{
static void count(int n) //递归方法
{
if (n<5)
count(n+1);
System.out.print(" "+n);
}
public static void main(String args[])
{
count(1)
相关文档:
JAVA程序反编译工具
下载地址:http://java.decompiler.free.fr/?q=jdgui
JD-GUI
JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.
JD-GUI is fre ......
A:
设计模式之Factory(简单工厂模式、工厂方法和抽象工厂)
了解反射:
Class.forName().newInstance();
1.简单工厂方法
角色:
具体工厂
抽象产品
具体产品
比喻:
一个产业结构单一,只专门一个产品领域的小工厂,如软件。
2工厂方法
角色:
抽象工厂:不做具体的工作,完成生产产品所必须 ......
如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自定义配置文件MANIFEST.MF ,例如:
Manifest-Version: 1.0
Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jar
Main-Class: src.YourMainClassName
其中的Class-Path就指定了� ......
Java中的方法调用中参数传递有两种,一个是对于参数是基本类型的使用的是值传递(直接传参数的值),另一个是引用传递,它是用于参数是类的对象,它传递的是这个对象的引用。
面向对象的思想anything is Object(万物皆对象)抽象,从对具体的对象中抽取有用信息。对象有其固有属性,对象的方法,即对象的行为(对象能做什 ......
安装,配置j2sdk:
执行j2sdk安装程序,自定义路径,我们的安装路径为:C:\j2sdk1.4.2_04
配置j2sdk:
配置环境变量:
我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:
JAVA_HOME=C:\j2sdk1.4.2_04
CLASSPATH=.;C:\j2sdk1.4.2_04\lib\tools.jar;C:\j2sdk1.4.2_04\lib\dt.jar;C:\j2sdk1.4.2_ ......