1 设n为自然数,编程计算∑n!的值;
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Input n:"); int n, result = 1, ans = 0;; n = in.nextInt(); for (int i = 1; i <= n; ++i) { result = 1; for (int j = 1; j <= i; ++j) { result *= j; } ans += result; } System.out.println("n! = " + ans); } }
//这个O(n^2)比较土;
import java.util.*; public class Main { public static void main(String[] agrs) { Scanner in= new Scanner(System.in); System.out.println("Input n:"); int n = in.nextInt(); int result = 1, ans = 0; for(int i=1; i<=n; ++i) { result *= i; ans += result; } System.out.println(ans); } }
//这个O(n)主要是保存中间变量的思想要掌握!
本文提供两种Java实现方式来计算从1到n的所有整数阶乘之和。第一种方法的时间复杂度为O(n^2),通过两层循环分别计算每个数的阶乘再求和。第二种方法的时间复杂度优化到了O(n),通过维护一个累积变量来减少重复计算。
2430

被折叠的 条评论
为什么被折叠?



