写一个简2113单的你看看是5261否可以4102public class test{ public static void main(String args[]){ int i=1; int j=1; int sum;int n; for(;i<=n&&n>=1;i++){ j=j*i;sum=sum+j;} System.out.println("1~10的1653阶乘和专为"+sum); } }你的n当然要你自己改属,回答者:火星微生物 - 魔法师 四级 11-4 15:56,public class Factorial { //下面的这个bai方法du利用递归的方zhi法求dao阶乘 public int getFac(int m) { if(m==1) { return 1; } else { return m*getFac(m-1); } } public static void main(String args[]) { Factorial fac=new Factorial(); //System.out.println(fac.getFac(4)); int sum=0; for(int i=1;i<=10;i++) { sum+=fac.getFac(i); } System.out.println("1到内10的阶乘的容和是:"+sum); }}本回答被提问者采纳,// 这问题用递归函数解决很方便、简洁class RecursiveFactorial { static long factorial(int n) { return n < 2 ? 1 : n * factorial(n - 1); // 递归 } static long sumOfFactorial(int n) { return n < 2 ? 1 : factorial(n) + sumOfFactorial(n - 1); // 也是递归 } public static void main(String[] args) { System.out.println("1! + 2! + 3! + ... + 20! == " + sumOfFactorial(20)); }}/ color4you 说的对// 下面是非递归式的解决class NonRecursiveFactorial { static long factorial(long n) { for (long i = n - 1; i > 0; i--) n *= i; return Math.max(1, n); // 结果无论如何32313133353236313431303231363533e59b9ee7ad9431333234326330最少是一 } static long sumOfFactorial(long n) { // n声明为int也可以 long sum = 0; while (n > 0) sum += factorial(n--); return Math.max(1, sum); } public static void main(String[] args) { System.out.println("1! + 2! + 3! + ... + 20! == " + sumOfFactorial(20)); }},楼上说的都很不错,不过可能对初学者比较难理解www.mh456.com防采集。
import org.junit.Test;public class Factorial {@Testpublic void qiuhe() {//下面三抄行可以根据不同需求改造2113成自己需要的5261,然后计算。String str = "1!4102+2!+3!+4!+5!+6!+7!+8!+9!+10!";str=str.replace("+","");String[] array=str.split("!");long sum= 0;for (int i = 0; i
import java.util.Scanner; public class A{ //下面的方法是对单个数求阶乘,并返回 public static int jieCheng(int n){ int sum=1; for(int i=1;i
内容来自www.mh456.com请勿采集。