Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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
Java 如何不在循环的阶乘表达式末尾打印乘法符号?_Java_For Loop_Format - Fatal编程技术网

Java 如何不在循环的阶乘表达式末尾打印乘法符号?

Java 如何不在循环的阶乘表达式末尾打印乘法符号?,java,for-loop,format,Java,For Loop,Format,我用java创建了一个程序,它将int作为输入并打印其阶乘。例如,输入=5打印:5 x 4 x 3 x 2 x 1=120。然而,我找不到一种方法来去除它末尾的乘法符号。我得到:5x4x3x2x1x=120。我该怎么做才能在最后摆脱它?这是我的密码: import java.util.*; public class Factorial { public static void factorial(int input) { int sum = 1; for(int i = inpu

我用java创建了一个程序,它将int作为输入并打印其阶乘。例如,输入=5打印:5 x 4 x 3 x 2 x 1=120。然而,我找不到一种方法来去除它末尾的乘法符号。我得到:5x4x3x2x1x=120。我该怎么做才能在最后摆脱它?这是我的密码:

import java.util.*;
public class Factorial {
public static void factorial(int input)
{
    int sum = 1;
    for(int i = input; i>=1; i--)
    {
        System.out.print(i+" x ");
        sum *= i;

    }
    System.out.print(" = " + sum);
}

public static void main (String []args)
{
    Scanner in = new Scanner (System.in);
    System.out.println("Enter a number to obtain its factorial");
    int a = in.nextInt();
    factorial(a);

}
}

检查您是否处于最后一个循环周期,即
i
是否等于1。然后你就知道你是最后一个号码了,你不需要打印x

您可以这样做:

System.out.print(i);
if(i != 1) {
    System.out.print(" x ");
}
或者,如果您只喜欢一行,则使用所谓的三元运算符:

System.out.print((i != 1) ? i + " x " : i);

检查您是否处于最后一个循环周期,即
i
是否等于1。然后你就知道你是最后一个号码了,你不需要打印x

您可以这样做:

System.out.print(i);
if(i != 1) {
    System.out.print(" x ");
}
或者,如果您只喜欢一行,则使用所谓的三元运算符:

System.out.print((i != 1) ? i + " x " : i);
在for循环中

if (i == 1) {
    System.out.print(i);
} else {
    System.out.print(i + " x ");
}
但是,您没有考虑用户何时输入0或负数。因此,您可以使用此选项:

public static void factorial(int input)
{
    if (input < 0) {
        System.out.println("Input should be positive");
        return;
    }

    if (input == 0) {
        System.out.print("0! = 1" );
        return;
    }

    int factorial = 1;

    for(int i = input; i >= 1; i--) {
        if (i == 1) {
            System.out.print(i);
        } else {
            System.out.print(i + " x ");
        }
        factorial *= i;

    }

    System.out.print(" = " + factorial);
}
publicstaticvoidfactorial(int输入)
{
如果(输入<0){
System.out.println(“输入应为正”);
返回;
}
如果(输入==0){
系统输出打印(“0!=1”);
返回;
}
整数阶乘=1;
对于(int i=input;i>=1;i--){
如果(i==1){
系统输出打印(一);
}否则{
系统输出打印(i+“x”);
}
阶乘*=i;
}
系统输出打印(“=”+阶乘);
}
在for循环中

if (i == 1) {
    System.out.print(i);
} else {
    System.out.print(i + " x ");
}
但是,您没有考虑用户何时输入0或负数。因此,您可以使用此选项:

public static void factorial(int input)
{
    if (input < 0) {
        System.out.println("Input should be positive");
        return;
    }

    if (input == 0) {
        System.out.print("0! = 1" );
        return;
    }

    int factorial = 1;

    for(int i = input; i >= 1; i--) {
        if (i == 1) {
            System.out.print(i);
        } else {
            System.out.print(i + " x ");
        }
        factorial *= i;

    }

    System.out.print(" = " + factorial);
}
publicstaticvoidfactorial(int输入)
{
如果(输入<0){
System.out.println(“输入应为正”);
返回;
}
如果(输入==0){
系统输出打印(“0!=1”);
返回;
}
整数阶乘=1;
对于(int i=input;i>=1;i--){
如果(i==1){
系统输出打印(一);
}否则{
系统输出打印(i+“x”);
}
阶乘*=i;
}
系统输出打印(“=”+阶乘);
}

将您的代码更改为

     import java.util.*;
     public class Factorial {
     public static void factorial(int input)
     {
     int sum = 1;
     for(int i = input; i>=1; i--)
     {
     System.out.print(i);

     if(i > 1) {
     System.out.print(" x ");
     sum *=i;
     }

     }
     System.out.print(" = " + sum);
     }

     public static void main (String []args)
     {
     Scanner in = new Scanner (System.in);
     System.out.println("Enter a number to obtain its factorial");
     int a = in.nextInt();
     factorial(a);

     }
     }
其中,如果i大于1,系统仅输出“X”

       if(i > 1) {
     System.out.print(" x ");   

将您的代码更改为此

     import java.util.*;
     public class Factorial {
     public static void factorial(int input)
     {
     int sum = 1;
     for(int i = input; i>=1; i--)
     {
     System.out.print(i);

     if(i > 1) {
     System.out.print(" x ");
     sum *=i;
     }

     }
     System.out.print(" = " + sum);
     }

     public static void main (String []args)
     {
     Scanner in = new Scanner (System.in);
     System.out.println("Enter a number to obtain its factorial");
     int a = in.nextInt();
     factorial(a);

     }
     }
其中,如果i大于1,系统仅输出“X”

       if(i > 1) {
     System.out.print(" x ");   

我认为乘以1没有实际意义。因此,我将条件更改为在input==1时结束,然后将1移动到System.out.print。 这将为您节省几行代码执行

for(int i = input; i> 1; i--)
{
    System.out.print(i+" x ");
    sum *= i;

}
System.out.print("1 = " + sum);

我认为乘以1没有实际意义。因此,我将条件更改为在input==1时结束,然后将1移动到System.out.print。 这将为您节省几行代码执行

for(int i = input; i> 1; i--)
{
    System.out.print(i+" x ");
    sum *= i;

}
System.out.print("1 = " + sum);