用JAVA程序写一个最简单的递归算法

王朝知道·作者佚名  2011-10-16
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

本人初学JAVA~希望哪位大哥写清楚注释好吗?

參考答案:

比如阶乘运算,就是一个很简单的递归

类的代码如下:

----------------------------------------------------

import java.math.BigInteger;

//由于结果比较大,引入了大整数BigInteger类

public class Plus {

//该类计算1000!并输出

public static void main(String[] args) {

int n = 1000;

System.out.println(getPlus(n).toString());

//调用getPlus方法,获取n!,并将结果转化为字符串输出

}

static BigInteger getPlus(int n) {

//该方法获取n的阶乘

if(n==0) return new BigInteger("1");

//如果n是0,那么返回0!=1……(*)

return getPlus(n - 1).multiply(new BigInteger(String.valueOf(n)));

//如果n非0,那么返回(n-1)!*n……(**)

}

}

---------------------------------------------------------

关键的步骤在于(*)和(**)

要运用递归,就必须满足

1.原问题可以层层转化为规模越来越小的子问题

即(**),把n!转化为求(n-1)!,再转为求(n-2)!……

2.对于规模足够小的问题,能够直接得解

即(*),对于0!,能够直接得到结果1

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航