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