A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乐享 中级黑马   /  2013-11-23 09:38  /  962 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用至少两种方法求出1—100的阶乘

2 个回复

倒序浏览
  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. }
复制代码
回复 使用道具 举报
迭代计算过程清晰。递归简单但是计算过程不清晰,迭代就是用上次计算的结果作为此次计算的输入值参与计算。
递归是给定一个结束条件,然后递减计算。
应该说:递归属于迭代的特殊形式
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马