// 算法一
public static void function1(int begin) {
double sum = 0;
double m = 1;
for(int i = 1; i <= begin; i++) {
m *= i;
sum += m;
}
System.out.println(sum);
}
// 算法二
public static void function2(int begin) {
double sum = 0;
double m;
for(int i = 1; i <= begin; i++) {
m = 1;
for(int j = 1; j <= i; j++) {
m *= j;
}
sum += m;
}
System.out.println(sum);
}
2、使用while循环实现
// 算法一
public static void function3(int begin) {
double sum = 0;
int i = 1;
double m = 1;
while(i <= begin) {
m *= i;
sum += m;
i++;
}
System.out.println(sum);
}
// 算法二
public static void function4(int begin) {
double m;
double sum = 0;
int i = 1;
int j;
boolean flag = true;
while(flag) {
m = 1;
j = 1;
while(j <= i) {
m *= j;
j++;
}
if(i == begin) flag =false;
i++;
sum += m;
}
System.out.println(sum);
}
3、使用 for嵌套while实现
//
public static void function5(int begin) {
double sum = 0;
double m;
int j;
for(int i = 1; i <= begin; i++) {
m = 1;
j = 1;
while(j <= i) {
m *= j;
j++;
}
sum += m;
}
System.out.println(sum);
}
4、使用while嵌套for实现
//
public static void function6(int begin) {
double sum = 0;
double m;
int i = 1;
while(i <= begin) {
m = 1;
for(int j = 1; j <= i; j++) {
m *= j;
}
i++;
sum += m;
}
System.out.println(sum);
}
5、用递归实现
public static double function7(int begin) {
if(begin == 1) return 1;
return begin * function7(begin - 1);
}
public static void main(String[] args) {
double sum = 0;
int i = 20;
while(i > 0) {
sum += function7(i);
i--;
}
System.out.println(sum);
}