黑马程序员技术交流社区

标题: 给大家出一个小问题? [打印本页]

作者: 乐享    时间: 2013-11-23 09:38
标题: 给大家出一个小问题?
用至少两种方法求出1—100的阶乘
作者: 邓伟    时间: 2013-11-23 12:20
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int product = factorial_1(6);
  6.                 System.out.println(product);
  7.         }
  8.         public static int factorial_1(int a) //第一种方法,迭代
  9.         {
  10.                 int  product = 1;
  11.                 for(int i = 1;i<=a;i++)
  12.                 {
  13.                         //System.out.println("i = "+i+"   product = "+product);
  14.                         product *= i;
  15.                 }
  16.                 return product;
  17.         }
  18.         public static int factorial_2(int a)//第二种方法递归
  19.         {
  20.                 if(a <= 1)
  21.                 {
  22.                         return 1;
  23.                 }
  24.                 return a * factorial_2(a-1);
  25.         }
  26. }
复制代码

作者: 花生壳    时间: 2013-11-23 12:37
迭代计算过程清晰。递归简单但是计算过程不清晰,迭代就是用上次计算的结果作为此次计算的输入值参与计算。
递归是给定一个结束条件,然后递减计算。
应该说:递归属于迭代的特殊形式




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2