for循环从a到b的数字的乘积

  • 本文关键字:数字 循环 for java
  • 更新时间 :
  • 英文 :


我需要编写一个程序,打印从a到b(a<b(的所有整数的乘积。

在产品中包括a并排除b。

样本输入1:

12

样本输出1:

1

您的代码输出:

2

这是我的代码:

import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long a = scanner.nextLong();
long b = scanner.nextLong();
long multiply = 0;
for(long i = a; i<b; i++){
multiply = i * (i+1);
}
System.out.println(multiply);
}
}

我做错了什么?请提示:(

更新:

这也无济于事。

测试输入:

12

正确输出:

1

您的代码输出:

0

import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long a = scanner.nextLong();
long b = scanner.nextLong();
long multiply = 0;
for(long i = a+1; i<b; i++){
multiply = i * (i+1);
if(multiply==2){
--multiply;
}
}
System.out.println(multiply);
}
}

您应该从multiply = 1开始,然后将其与下一个整数相乘。

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long a = scanner.nextLong();
long b = scanner.nextLong();
long multiply = 1;
for (long i = a; i < b; i++) {
multiply *= i;
}
System.out.println(multiply);
}
}

样本运行:

1 2
1

另一个样本运行:

2 5
24

让我们在编写代码之前先找出解决方案&理解什么";从a到b的所有整数的乘积(a<b(";是

对于a=1和b=2,因为我们包括1,不包括2,所以结果是1同样,对于a=1和b=3,结果是1*2

因此,您的第一个实现实际上是接近的:您希望循环遍历结果中包含的所有数字,并通过乘法累加这些数字。您不希望只使用multiply = i * (i+1);,因为它将在每次循环迭代中替换multiply的值,相反,您应该使用multiply的前一个值,并将其与i组合

最新更新