hhjc.net
当前位置:首页 >> jAvA10以内阶乘和 >>

jAvA10以内阶乘和

阶乘求和应该放在求阶乘下面 public class sum { public static void main(string args[]) { int sum = 0, i, a = 1; for (i = 1; i a = a * i; sum = sum + a; } system.out.println("sum= " + sum); } }

sum=sum+a;a=a*i;改成a=a*i;sum=sum+a;

public class Factorial{ static long factorial(int n){ if(n<=1) return 1; return factorial(n-1)*n; } public static void main(String[] args){ int sum=0; for(int i=0;i<=10;i++){ sum+=factorial(i); } System.out.println(sum); }}通过验证,结果是:4037914.

class A{ public static void main(String[] args){ int a=1; for(int i=1;i<=10;i++){ a*=i; } System.out.println(a); } }

public static void main(String args[]) { int Sum=0; jiecheng jc = new jiecheng(); for(int i=1;i<11;i++)//1到10的阶乘和 { Sum+=jc.JC(i);//在这个地方,发现如果想引用jiecheng类的方法JC的话,必须声明static,还有其他的方法吗? } System.out.println(Sum); }

你只要稍微分析2个数字的阶乘你就明白了算法1当i=1, result = 0, j = 1;进入循环后 j = 1! result = 1! = 1当i = 2, result = 1!, j=1, 进入循环j = 2 * j = 2=2!, result = 1! + 2! =3明显算法1是用j来保存数字n!, 通过result 来累计和,变量功能很明显,条

测试已经通过 public class Test1 { public static void main(String args[]) { long a, u, b; u = 1; b = 0; String str = null; for (a = 1; a <= 20; a++) { u = u * a; b = b + u; if (a == 1) { str = a + "!"; } else { str = str + "+" + a + "!"; } System.out.println

// 弄个比较中庸的方法 public static void main(String[] args) { int sum = 0; for (int i = 2; i <= 10; i++) { int num = 1; for (int j = 2; j <= i; j++) { num *= j; } // System.out.println(num); sum += num; } System.out.println("1*2+1*2*3+1*2*3*4+……+1*2*3*4*5*6*7*8*9*10=" + sum); }

因为10的阶乘只有362万多,所以,用int类型就能够保存,然后用循环算就可以了 这个JAVA中的一个方法 public static int Factorial(){ int sum=2; for(int i=3;i<=10;i++){ sum*=i; } return sum; }

你自己比对一下吧 public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 20; i++) { int mul = 1; for (int j = i; j >= 1; j--) { mul *= j; } sum += mul; } System.out.println(sum); }

网站首页 | 网站地图
All rights reserved Powered by www.hhjc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com