黑马程序员技术交流社区

标题: 基础视频也看了,但是看到一个题不会做呢 [打印本页]

作者: adolph    时间: 2015-3-15 00:46
标题: 基础视频也看了,但是看到一个题不会做呢
6.定义一个计算n!的类Fact,然后主类中创建一个对象求解4!的值。
作者: 柯泉    时间: 2015-3-15 00:49
什么题目 不懂
作者: 殷俊    时间: 2015-3-15 01:05
class Fact
{
        public static void act(int i)
        {
                for(int x=i-1;x>0;x--)
                {
                        i=i*x;
                }
                System.out.println(i);
        }
}

class  DemoA
{
        public static void main(String[] args)
        {
                Fact.act(4);
        }
}
这是个阶乘的代码。大致可以解决你的问题。
作者: adolph    时间: 2015-3-15 01:15
殷俊 发表于 2015-3-15 01:05
class Fact
{
        public static void act(int i)

谢谢啦!:lol
作者: ㏒假™面具    时间: 2015-3-15 01:19
  1. /**
  2. *         定义一个计算n!的类Fact,然后主类中创建一个对象求解4!的值。
  3. *
  4. *  分析:
  5. *          n!是求 n的阶乘
  6. *          n! = n*(n-1)*(n-1)*...*1;
  7. *          定义变量记录乘积值
  8. *          将要求阶乘的数值作为参数传递给求阶乘的方法
  9. */
  10. package com.itheima;

  11. /**
  12. * @author 面具
  13. *
  14. */
  15. class Fact {
  16.         public int getFact(int n) {
  17.                 // 定义变量记录值
  18.                 int factorial = 1;
  19.                 // 循环取值1-n之间
  20.                 for (int a = 1; a <= n; a++) {
  21.                         // 求阶乘 , 第一个循环 factorial = 1*1 第二个循环 为factorial*2,直到factorial*n
  22.                         factorial *= a;
  23.                 }
  24.                 return factorial;
  25.         }
  26. }
  27. public class FactDemo{
  28.         public static void main(String[] args) {
  29.                 Fact f = new Fact();
  30.                 int factorial = f.getFact(4);
  31.                 System.out.println(factorial);
  32.         }
  33. }
复制代码

作者: zgjswp    时间: 2015-3-15 08:14
开始不用急啊,因为这是算法问题,不是不java语言的问题,所以建议楼主要把常用算法看看
作者: 佟金    时间: 2015-3-15 08:59
是这样的
作者: lrd7512369    时间: 2015-3-15 09:07
简单的for循环就可以了




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