用JAVA 算下
1.  求1+2+3+...+10000的和
2.  求1!+2!+3!+...+10! 的和
3.  求100以内的素数和

解决方案 »

  1.   

    //1-10000int sun=0;
    for(int i=0;i<10000;i++)
    {
        sun+=i;
    }
    System.out.println(sun);
    //阶乘
    int k=1;
    int z=0;
    for(int i=1;i<11;i++)
    {
        k=1;
        for(int j=1;j<=i;j++)
        {
            k=k*j;
        }
        z=z+k;
    }
    System.out.println(z);
    //素数
    int k;
    for(int i=2;i<101;i++)
    {
        for(int j=2;j<i,j++)
        {
             if(i%j==0)
             {
                 break;
             }
             else if(j==i-1) {
                k+=i
             }
             
        }
    }
    System.out.println(k);
    )
    思路就是这样,没跑过
      

  2.   


    public class T{    public T() {
            int n = 1;
            int all = 0;
            for (int i = 1; i <= 10; i++) {
                n *= i;
                all += n;
            }
            System.out.println("结果为:" + all); 
        }
    }
    觉得第二种可以这样做……效率高很多
      

  3.   

    // 求1+2+3+...+10000的和 public int get1(){
    int sum=0;
    for(int i=1;i<10001;i++ ){
    sum+=i;
    }
    return sum;
    }

    // 求1!+2!+3!+...+10! 的和

    public int get2(){
    int sum=0;
    int mid=1;
    for(int i=1;i<11;i++){
    mid*=i;
    sum+=mid;
    }

    return sum;
    }


    // 求100以内的素数和


    public int get3(){
    int sum=0;
    int i,j;

    for(i=2;i<101;i++){
    for(j=2;j<i;j++){
    if(i%j==0){
    break;
    }
    }
    if(j==i){
    sum+=i;
    }
    }

    return sum;
    }

     求1!+2!+3!+...+10! 的和 是7楼barryhappy的方法,的确比4楼的方法好点。
     代码都在我的机器上流过了,应该没有问题。
      

  4.   


    public class OddSum {
    public static void main(String[] args) {
    long result = 0;
    for(int i=1; i<=99; i+=2) {
    result += i;


    System.out.println("result=" + result);
    }
    }
    public class Factorial {
    public static void main(String args[]) {
    System.out.println(f(3));
    }

    public static int f(int n) {
    if(n == 1) {
    return 2;
    }
    else {
    return n*f(n-1);
    }
    }
    }
    public class PrimeNumberSum {
     public static void main(String args[]) {
         int sum = 0;
         for(int i=2; i<100; i++) {
             boolean b = true;
             for(int j=2; j<i; j++) {
                 if(i % j == 0) {
                     b = false;
                     break;        
                 }    
             }
             if(!b) {continue;}
             System.out.print(i + " ");
             sum += i;
         }
         System.out.println();
         System.out.println("sum:" + sum);        
     }    
    }
      

  5.   


    public class TestSum {
    public static void main(String args[]) {
    int result = 0;
    for(int i=1; i<=10000; i++) {
    result += i;
    }
    System.out.println(result);
    }
    }
    public class Factorial {
    public static void main(String args[]) {
    System.out.println(f(3));
    }

    public static int f(int n) {
    if(n == 1) {
    return 1;
    }
    else {
    return n*f(n-1);
    }
    }
    }
    public class PrimeNumberSum {
     public static void main(String args[]) {
         int sum = 0;
         for(int i=2; i<100; i++) {
             boolean b = true;
             for(int j=2; j<i; j++) {
                 if(i % j == 0) {
                     b = false;
                     break;        
                 }    
             }
             if(!b) {continue;}
             System.out.print(i + " ");
             sum += i;
         }
         System.out.println();
         System.out.println("sum:" + sum);        
     }    
    }
    上面有些小错误
      

  6.   

    第一个很容易吧
    就一个for循环就OK了
      

  7.   

    为什么没考虑溢出?
    使用java中“大数”类。
      

  8.   

    int和long放的下那么大的数么?
      

  9.   


    你的数学老师已经被你气死了……static int sum(int n) {
    int sum = 0;
    for (int i = 1; i <= n; i++) {
    sum += i;
    }
    return sum;
    //return ((1 + n) * n) >> 1;
    }static int sumFrac(int n) {
    int sum = 0, tmp = 1;
    for (int i = 1; i <= n; i++) {
    sum += (tmp *= i);
    }
    return sum;
    }static int sumPrime(int n) {
    boolean[] flags = new boolean[n + 1];
    flags[0] = flags[1] = true;
    int sum = 0;
    for (int i = 1; i <= n; i++) {
    if (!flags[i]) {
    sum += i;
    int j = i + i;
    while (j <= n) {
    flags[j] = true;
    j += i;
    }
    }
    }
    return sum;
    }
      

  10.   

    额,上面阶乘拼错了……
    方法名应该是sumFact或者sumFactorial的,不是Frac第一题是循环求和,注释掉的是直接用求和公式
    第二题就是一个循环,利用n!=n*(n-1)!
    第三题用筛法,复杂度O(n)就可以了
      

  11.   


    我纠结,写了几年代码数学都忘了,res=n*(n+1)/2
     大哥。