I need to write a program that prints the product of all integer numbers from a to b (a < b).
Include a and exclude b from the product.
Sample Input 1:
1 2
Sample Output 1:
1
Your code output:
2
Here is my code:
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);
}
}
What I’m doing wrong? Please a hint 🙂
UPDATE:
It didn’t help either.
Test input:
1 2
Correct output:
1
Your code output:
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);
}
}
Advertisement
Answer
You should start with multiply = 1 and then keep multiplying it with the next integers.
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);
}
}
A sample run:
1 2 1
Another sample run:
2 5 24