import java.util.Scanner; /** * 输入n, 求 y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2!+4!+...p!(p是小于等于n的最大偶数) * * @author kif * */ public class Factorial { // 最大奇数 static int m; // 最大偶数 static int p; /* * 阶乘 */ public static void factorial(int f , int m) { long sum = 0; for (; f <= m; f += 2) { long sum2 = 1; for (int j = 1; j <= f; j++) { sum2 *= j; } sum += sum2; } System.out.println(sum); } /* * n的最大奇数阶乘 */ public static void obbNumber(int m) { long sum = 0; for (int i = 1; i <= m; i += 2) { long sum2 = 1; for (int j = 1; j <= i; j++) { sum2 *= j; } sum += sum2; } System.out.println(sum); } /* * n的最大偶数阶乘 * y2=2!+4!+...p! */ public static void evenNumber(int p) { long sum = 0; for (int i = 2; i <= p ; i += 2) { long sum2 = 1; for (int j = 1; j <= i; j++) { sum2 *= j; } sum += sum2; } System.out.println(sum); } public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入 n = "); int n = input.nextInt(); if (n % 2 == 0) { p = n; m = n - 1; } else { m = n; p = n - 1; } System.out.println("p = " + p + " m = " + m); Factorial.evenNumber(p); Factorial.obbNumber(m); Factorial.factorial(2, p); Factorial.factorial(1, m); input.close(); } }