从控制台输入一个正整数,计算该数的阶乘,例如输入6,阶乘为6*5*4*3*2*1

/*
    习题3:
        从控制台输入一个正整数,计算该数的阶乘,例如输入6,阶乘为 6*5*4*3*2*1

    先写思路
        第一步:创建一个接收用户输入的整数型扫描器
        第二部:使用循环 从接收的正整数到0的循环
        第三步:在循环中使该正整数进行自减1,并且输出阶乘
*/

public class Test2{
    public static void main(String[] args){
            //创建一个用户扫描器
    java.util.Scanner n = new java.util.Scanner(System.in);
             //提示用户输入一个正整数
    System.out.print("请输入一个正整数:");
            //把用户输入的正整数赋值给i变量
    int i = n.nextInt();
            //使用循环语句,让循环的变量a等于用户输入的正整数i 并且进行自减1 
    for ( int a = i;a>0 ;a--){
            //输出阶乘结果
        System.out.print( a + "*");
        //以上输出的阶乘结果最后一位还是带有“*”号
    }

    }
}

执行结果并不满意,为:

从控制台输入一个正整数,计算该数的阶乘,例如输入6,阶乘为6*5*4*3*2*1

 

//..........................................................
    //不好意思 理解错题干了 老师想做的是得到阶乘的结果............

    //那么改为
    //因为相乘 如果是0的话不管输入几阶乘结果都为0,所以是1

    int c = 1;  

    //使用户输入的整数自减1直到1为止
    for (int b = i;b >0 ;b-- ){

    //把得到的结果乘积赋值给c
        c *= b;  
    }

       System.out.println("---------------------------------");
    //输出阶乘结果
        System.out.println("您输入的整数阶乘结果为" + c);

执行结果为:

从控制台输入一个正整数,计算该数的阶乘,例如输入6,阶乘为6*5*4*3*2*1