1+ 1+2 + 1+2+3 + 1+2+3+4 +.....一直到十.如果用递归,怎样写?
我总是遇到死循环.郁闷.1+ 1*2 + 1*2*3 +......一直到10.应该怎样呢?各位给我做出来一个就可以,我再好好想想.我找的规律总不对.

解决方案 »

  1.   

    int sum(int n) {
    if(n == 1) return 1;
    int temp = 0;
    for(int i=1; i<=n; i++)
    temp +=i;
    return sum(n-1) + temp;
    }
      

  2.   

    public void add(int end)
    {
    int sum=0;
    for(int i=1;i<=end;i++)
    {
    for(int j=1;j<=i;j++)
    {
    sum+=j;
    System.out.print(j+"+");
    }
    System.out.print(" ");
    }
    System.out.println("sum:"+sum);
    }
    public void cheng(int end)
    {
    long sum=0;
    int temp=1;
    for(int i=1;i<=10;i++)
    {
    sum+=1;
    System.out.print(i+"+");
    for(int j=1;j<=i;j++)
    {
    temp*=j;
    System.out.print(j+"*");
    }
    System.out.print("");
    sum+=temp;
    }
    System.out.println("sum:"+sum);
    }
      

  3.   

    更正一下:cheng(int end) 里没有"sum+=1;"
      

  4.   

    public class Calc {
      public static int add(int num) {
        if (num <= 0) {
          throw new IllegalArgumentException("Num must be postive!");
        }
        if (num == 1) {
          return 1;
        }
        return num + add(num - 1);
      }
    }乘法就是把最后的+变*
      

  5.   

    这样可以实现如下;
    import javax.swing.*;
     
     public class Calc
     {
      public static void main(String[] args)
      {
      Multiplication aMul = new Multiplication();
     
      long num = Long.parseLong(JOptionPane.showInputDialog("Input a num :"));
     
      long all = aMul.calc(num);
     
      System.out.println("all is " + all);
      }
     }
     
     class Multiplication
     {
      public int calc(long n)
      {
      int temp = 1;
      if(n <= 0)
      {
      throw new IllegalArgumentException("Number must bigger than zero !");
     
      }
      else
      {
      if(n == 1)
      {
     
      System.out.println("1*...*1 =1");
      return 1;
      }
      else
      {
      for(int i=1 ; i<=n ; i++)
      {
      temp *= i;
      }
     
      System.out.println("1*...*" + n + " =" + temp);
     
      return temp + calc(n-1);
     
     
      }
      }
      }
     }
      

  6.   

    public int sum(int i){
    if(i==1)
    return 1;

    int s = 0;
    for(int k = 0;k<=i;k++)
    s = s+k;
    System.out.println(s);
    return sum(i-1)+s;
    }

    public int multiply(int i){
    if(i==1)
    return 1;

    int s = 1;
    for(int k = 1;k<=i;k++)
    s = s*k;
    System.out.println(s);
    return multiply(i-1)+s;
    }
      

  7.   

    function int sum(n){
     int sum=0  
     if n<=1 then
         return 1
      else
        sum+=n
        sum(n -1)
      end if
    }
      

  8.   


      递归, int x(int i)
    {
       if(i<=0)
           return 0;
       else
          return x(i-1)+1;}这中结构有典型的结构,熟悉了,就好弄了.
      

  9.   

    class A{
    int Sum(int n){
    int temp=0;
    if(n==1)return 1;
    temp=Sum(n-1)+n;
    System.out.println("n:" + n);
    System.out.println("temp:" + temp);
    return temp;
    }
    }
    public class Dg {
    public static void main(String[] args) {
    int Sum = 0;
    A dg = new A();
    for(int i=1;i<=10;i++){
    Sum+=dg.Sum(i);
    System.out.println("Sum:" + Sum);
    }
    }
    }
      

  10.   


      代码:
      借用上面一格兄弟的代码,但他的不符合LZ要求。  public class Calc {
      static int add(int num) {
        if (num <= 0) {
          throw new IllegalArgumentException("Num must be postive!");
        }
        if (num == 1) {
          return 1;
        }
        return num + add(num - 1);
      }

      static int mut(int num) {
        if (num <= 0) {
          throw new IllegalArgumentException("Num must be postive!");
        }
        if (num == 1) {
          return 1;
        }
        return num * mut(num - 1);
      }  public static void main(String args[])
    {
     
      int sum = 0;
      int mut = 0; 
      for (int i=1 ;i<=10 ;i++ )
      {   sum = add(i) + sum;
      mut = mut(i) + mut;
      }
      System.out.println(sum);
      System.out.println(mut);
    }
    }
      

  11.   

    加法:
    int sum(int n)
    {
      if ( n == 1) return 1;
      return sum(n-1) + add(n);
    }int add(n)
    {
      if (n == 1) return 1;
      return add(n-1) + n;
    }
      

  12.   

    乘法:
    int sum(int n)
    {
      if ( n == 1) return 1;
      return sum(n-1) + cheng(n);
    }int cheng(n)
    {
      if (n == 1) return 1;
      return cheng(n-1) * n;
    }
      

  13.   

    这个算法应该比较容易懂一点
    int t=1,sum=0,i=1;
    for(i=1;i<=10;i++)
    {
    t=t*i;
    sum=sum+t;
    }
    System.out.println("sum="+sum);
      

  14.   

    乘法递归算法:
    fac(int n)
    {
    int t,sum=0;
    if(n==0||n==1)t=1;
    else t=n*fac(n-1);
    sum+=t;
    }
      

  15.   

    各个师姐,师哥们:
        我也愿意加入你们的行列,我现在在山东大学学习计算机科学与技术,我非常喜欢java,你们可以帮助我吗?
    我会努力的
      我要和你们比一比,看我们在两年后的时间里,谁的本领更高一筹
      怎么样啊