设计一个JAVA程序,完成:i+(i+k)+(i+2*k)+(i+3*k)…*j之和。
时间: 2024-05-15 15:15:35 浏览: 5
以下是一个实现该功能的JAVA程序:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
int j = scanner.nextInt();
int k = scanner.nextInt();
int sum = 0;
for (int n = 1; i * n <= j; n++) {
sum += i * n;
for (int m = 2; i * n * m <= j; m++) {
sum += i * n * m;
}
}
System.out.println(sum);
}
}
```
程序首先读取三个整数i、j和k,然后使用两个循环计算i (i k) (i 2*k) (i 3*k)…*j之和。第一个循环变量n从1开始递增,直到i * n大于j为止,每次循环将i * n加入到sum中。第二个循环变量m从2开始递增,每次将i * n * m加入到sum中,直到i * n * m大于j为止。最终程序输出sum的值作为结果。
相关问题
编写程序实现1!+2!+3!+…20!的和
这里提供了三种不同的Java程序实现1!+2!+3!+…20!的和。其中,每个程序都使用了不同的方法来计算阶乘和总和。你可以根据自己的需求选择其中任何一种方法来实现这个问题。
1. 第一种方法使用了两个for循环来计算每个数字的阶乘,并将它们相加得到总和。
2. 第二种方法使用了一个私有的阶乘方法来计算每个数字的阶乘,并使用一个for循环来计算总和。
3. 第三种方法使用了一个for循环来计算每个数字的阶乘,并将它们相加得到总和。
下面是一个示例程序,它使用第一种方法来计算1!+2!+3!+…20!的和:
```
public class Test{
public static void main(String[] args){
System.out.println("1!+2!+3!+...+20!=" + getSum(20));
}
public static long getSum(int n){
int i,k,fac,sum=0;
for(i=1;i<=n;i++){
fac=1;
for(k=1;k<=i;k++)
fac=fac*k;
sum=sum+fac;
}
return sum;
}
}
```
以下程序实现1!+2!+3!+...+10!,函数long m(int k)用于求k!。
### 回答1:
以下是一个可以求解1!到10!的程序实现,其中函数long m(int k)用于求k!:
```java
public class Factorial {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i + "! = " + m(i));
}
}
public static long m(int k) {
long result = 1;
for (int i = 1; i <= k; i++) {
result *= i;
}
return result;
}
}
```
在上述程序中,函数m(int k)使用一个for循环来计算k的阶乘。我们首先初始化result为1,并且从1开始迭代i,每次将result乘以i。通过这个循环,我们可以得到k的阶乘的值。
在主函数main中,我们使用一个for循环从1到10,分别调用m函数来计算1!到10!的值,并将结果打印出来。
运行上述程序,会得到如下结果:
```
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
```
这个程序演示了如何使用函数来计算给定数的阶乘,并通过打印输出结果展示了1!到10!的值。
### 回答2:
下面是一个实现1!,2!,3!,... 10! 的程序。函数long m(int k) 是用来计算k! 的。
```java
public class Factorial {
public static void main(String[] args) {
for(int i = 1; i <= 10; i++) {
System.out.println(i + "! = " + m(i));
}
}
public static long m(int k) {
if(k == 1) {
return 1;
} else {
return k * m(k-1);
}
}
}
```
这个程序使用了递归的方式来计算阶乘。对于m(k),当k=1时,直接返回1。否则,计算k * m(k-1)。
运行这个程序,输出如下:
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
这个程序展示了如何计算1! 到 10!,并使用递归的方式计算阶乘。