【程序21】 题目:求1+2!+3!+…+20!的和
1.程序分析:此程序只是把累加变成了累乘。 1 2 6 24程序代码:
package SE50T; /* * 【程序21】 题目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。 1 2 6 24 */ public class T21 { public static void main(String[] args) { // loop(); Digui d = new Digui(); d.print(); } //第一钟方法:直接暴力双for循环 private static void loop() { long sum = 0; long c = 0; for (int i = 1; i < 21; i++) { c = 1; for (int j = 1; j < i; j++) { c = c * (j + 1); } sum = sum + c; } System.out.println("1+2!+3!+...+20!的和为:" + sum); } } //第二钟方法:利用递归加一重for循环 class Digui { long sum = 0; public void print() { for (int i = 1; i <= 20; i++) { sum += fun(i); } System.out.println("1+2!+3!+...+20!的和为:" + sum); } public long fun(int i) { if (i == 1) { return 1; }else { return i * fun(i - 1); } } }程序运行图: