Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
程序输入一个数,如果是阶乘数,则输出阶乘级数,否则为false import java.util.*; 类阶乘{ 无效事实编号(整数n){ int-fact=1; ArrayList al=新的ArrayList(); 对于(inti=1;fact_Java - Fatal编程技术网

程序输入一个数,如果是阶乘数,则输出阶乘级数,否则为false import java.util.*; 类阶乘{ 无效事实编号(整数n){ int-fact=1; ArrayList al=新的ArrayList(); 对于(inti=1;fact

程序输入一个数,如果是阶乘数,则输出阶乘级数,否则为false import java.util.*; 类阶乘{ 无效事实编号(整数n){ int-fact=1; ArrayList al=新的ArrayList(); 对于(inti=1;fact,java,Java,,您可以使用下面代码中所示的标志值来跟踪数字是否为阶乘 import java.util.*; class Factorial{ void factNum(int n){ int fact=1; ArrayList<Integer> al=new ArrayList<Integer>(); for(int i=1;fact<=n;i++){

,您可以使用下面代码中所示的标志值来跟踪数字是否为阶乘

import java.util.*;
class Factorial{

         void factNum(int n){
                int fact=1;
          ArrayList<Integer> al=new ArrayList<Integer>();
               for(int i=1;fact<=n;i++){
                     fact=fact*i;
                         al.add(i);
                    if(fact==n){
                        for(int j:al){
                        System.out.print(+j);
                        }}

    }

}

        public static void main(String args[]){

          Scanner scan=new Scanner(System.in);
           Factorial f=new Factorial();
           System.out.println("Enter the Integer");
           int num=scan.nextInt();
           f.factNum(num);
}
}
publicstaticvoidfactnum(intn){
int-fact=1;
ArrayList al=新的ArrayList();
布尔标志=假;
对于(int i=1;fact您不会在任何地方打印“False”。保留一个布尔标志以检查给定的数字是否为阶乘,并相应地打印

public static void factNum(int n) {

    int fact = 1;
    ArrayList<Integer> al = new ArrayList<Integer>();

    boolean flag = false;

    for (int i = 1; fact <= n; i++) {
        fact = fact * i;
        al.add(i);
        if (fact == n) {
            flag = true;
            for (int j : al) {
                System.out.print(+j);
            }
        }
    }

    if(!flag)
        System.out.println("false");

}
void factNum(int n){
int-fact=1;
布尔标志=真;
ArrayList al=新的ArrayList();
对于(inti=1;fact请尝试以下代码

void factNum(int n){
        int fact=1;
        boolean flag = true;
        ArrayList<Integer> al=new ArrayList<Integer>();
        for(int i=1;fact<=n;i++){
            fact=fact*i;
            al.add(i);
            if(fact==n){
                flag = false;//if factorial then make it false
                for(int j:al){
                    System.out.print(+j);
                }}

        }
        if(flag)
            System.out.println("False");

    }
void factNum(int n){
int-fact=1;
ArrayList al=新的ArrayList();
整数检查=0;
对于(int i=1;事实n&&check==0)
{
System.out.println(“假”);
}
}
}

不要打印来自
factNum()
的结果。让
factNum()
返回
ArrayList
。如果返回的结果包含元素,则打印它们。如果没有,则打印
“False”
。您应该尝试更好地格式化程序,使人们更容易理解您试图实现的目标。
void factNum(int n) {
        int fact = 1;
        ArrayList<Integer> al = new ArrayList<Integer>();
        int check = 0;
        for (int i = 1; fact <= n; i++) {
            fact = fact * i;
            al.add(i);
            if (fact == n) {
                for (int j : al) {
                    System.out.print(+j);
                    check = 1;
                }
            }
            else if (fact>n && check == 0)
            {
                System.out.println("False");            
            }
        }
    }