求一题Java编程

用Java算出1!-2!+3!-4!+……-10!的代码,在线等,急求

第1个回答  2014-11-20

其实这道题目的要点在于它的算法,一般人非常容易想到,算出每个数的阶乘,然后一个一个得相加,关键在于算阶乘的时候,如果图方便就每个数都从1计算它的阶乘,实际上这是没有必要的,因为这里有重复的过程,所以合理的算法应该是去掉这些重复的部分,具体算法如下:


public class Test {


public static void main(String[] args) {

double multi=1;

double sum=0;

for(int i=1;i<=10;i++)

{

 multi=multi*i;

 if(i%2==1){

   sum=sum+multi;

  }else{

   sum=sum-multi;

  }


}

     System.out.println("sum="+sum);

}


}

本回答被网友采纳
第2个回答  2014-11-20
public class Test {
//求阶乘
   public int fac(int n) {
        int result = 1;
        for (int i = 1; i <= n; i++) {
            result *= i;
        }
        return result;
   }
//加减   
   public int add(int n) {

     int sum = 0;
     for(int i = 1; i <= n; i++ ) {
     //偶数减,奇数加
        if (i % 2 == 0) {
            sum -=fac(i);
        } else {
            sum +=fac(i);

        }
     }
     return sum;
   }
   
 //测试  
   public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.add(4));
   }
}

第3个回答  2014-11-20
var fact=function(n){return n<2?1:n*fact(n-1);}
var sum=function(n,r){return n<2?r+1:sum(n-1,r+(n%2?1:-1)*fact(n));}
console.log(sum(5, 0));

public class Test {
  public static void main( String[] args ) {
    System.out.println( new Test().sum( 5, 0 ) );
  }
  int fact( int n ) {
    return n < 2 ? 1 : n * fact( n - 1 );
  }
  int sum( int n, int s ) {
    return n < 2 ? s + 1 : sum( n - 1, s + ( n % 2 == 0 ? -1 : 1 ) * fact( n ) );
  }
}

第4个回答  2014-11-20
如下哦:getResult函数
public int getResult(int n) {
    int sum = 0;
    for (int i = 1;i < n + 1;i++){
        sum += Math.pow(-1,i+1) * getFactorial(i);
    }
    System.out.println(sum);
}

public int getFactorial(int n) {
    if(n == 0) {
        return 1;
    } else {
        return n * getFactorial(n - 1);
    }
}

第5个回答  2014-11-20
太简单了把

public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
int sum = 0;
int fuhao;
for(int i=1;i<=10;i++)
{
if(i%2 != 0)
{
fuhao = 1;
}
else
{
fuhao = -1;
}
sum += fuhao *jiecheng(i);
}
System.out.println("sum = "+ sum);
}
private static int jiecheng(int n) {
int sum = 1;
for(int i=1;i<=n;i++)
{
sum *= i;
}
return sum;
}
}

sum = -3301819本回答被提问者采纳

java题目(java题目题库)
java题目,求助大神了publicclassDay31{ publicstaticvoidmain(String[]args){ Animalch=newChicken("喔喔","芦花鸡","虫子","打鸣");Animaldu=newChicken("嘎嘎","斑嘴鸭","小皮没鱼虾","游泳饥带");AnimalAction.script(ch);AnimalAction.script(du);} } \/\/父类 abstractclassAnimal{ protect...

用java编写
public class Test1and4 { public static void main(String[] args) { int[] a = {89,72,56,90,68,92,99,82,71,65,78,55,90,68,74,79,93,67,71,80};int[] b={8,26,51,14,1};int sum=0;for(int i=0;i<a.length;i++){ sum+=a[i];} System.out.println("20个学生...

java新手编程题目
import java.util.Arrays;public class RandomDemo {public static void main(String[] args) {int loop = 5;\/\/ 重复5次试验for (int k = 0; k < loop; k++) {int times = 0;\/\/ 循环的次数int[] ary;\/\/ 数组,存储4个随机数while (true) {times++;\/\/ 次数+1ary = new int[4]...

Java编程题
1.import java.util.Scanner;public class Cube{ private double len; \/\/定义边长 \/\/获得边长 public double getLen() { return len;} \/\/赋值边长 public void setLen(double len) { this.len = len;} \/\/计算表面积 public double getArea(double len){ return len*len*6;} \/\/计算体积 ...

实用8条,Java小白编程练习题
Java8条编程练习,小白易学 1、拼接打印: 输出: XXX: 这是我学习JAVA的第X年,我的期望薪资是XXX。2、定义两个整数,计算这两个整数加减乘除运算的结果,并把结果打印到控制台。3、接收用户输入的数据,判断是奇数还是偶数。4、分别通过for循环\/While循环\/do-While循环,写一个死循环。5、打印100...

java编程题 本人新手,求详解。
\/ 学生类 author 逍遥 \/ public class Student { \/\/学号 private int sId;\/\/姓名 private String sName;\/\/数学成绩 private double mathScore;\/\/计算机成绩 private double computerScore;\/ 获取学号 return \/ public int getsId() { return sId;} \/ 设置学号 param sId \/ public void setsId(...

用JAVA编程算出《张丘建算经》中的一道百鸡问题
a + b + c = 100 5a + 3b + c\/3 = 100 两方程联立消去c可得到:14a + 8b = 200 也就是说这道题求的是满足 14a + 8b = 200 这个方程的整数解,即 (200 - 14 * a) % 8 == 0 demo(仅供参考):public static void main(String[] args) { \/\/ a,b,c分别是公鸡、母鸡...

java题求代码,4、现在有如下的一个数组: int oldArr[]={1,3,4,5,0,
class NewArray { public static void main (String[] args) { int [] a = {1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5}; \/\/ 定义一个新数组 int [] b = new int[7]; \/\/ 定义一个变量j,作为数组b的下标 int j = 0; for (int i = 0; i...

求java编程题目解:编程求解鸡兔问题,鸡兔共有49只,但有100只足,计算鸡...
param args \/ public static void main(String[] args) { int total = 49;int feet = 100;for(int chicken = 0; chicken < total; chicken++){ int rabbit = 49-chicken;\/\/兔子数目 if((chicken * 2 + rabbit * 4) == feet){ System.out.println("It can contain " + chicken + ...

一道Java编程题,拜托了各位大神
1.定义一个Student类,包括学号,姓名,成绩三个字段,生成get,set和toString方法,实现Comparable接口,重写toCompare方法,方法里就是本题的逻辑,先按成绩比较,再按学好比较,使用TreeSet不实现这个接口会报错。package Collection;public class Student implements Comparable<Student> {private long sno;...

相似回答
大家正在搜