当前位置: 代码迷 >> J2SE >> 简单递归有关问题
  详细解决方案

简单递归有关问题

热度:82   发布时间:2016-04-24 13:13:03.0
简单递归问题
递归生成
*
**
***
****
****
***
**
*
我的代码如下,不知道有没有更简便的方法?
  public static void dd(int begin,int level){
  if (level>0){
  b(begin);
  System.out.print("\n");
  dd(begin+1,level-1);
  b(begin);
  System.out.print("\n");
  }
  }
   
  public static void b(int n){
  if (n>0){
  System.out.print("*");
  b(n-1);
  }
  }

------解决方案--------------------
Java code
public static void dd(int n)    {        for(int i=0;i<n;i++)        {            for(int j=0;j<=i+1;j++)            {                System.out.print("*");            }            System.out.print("\n");        }        for(int i=n;i>0;i--)        {            for(int j=0;j<i+1;j++)            {                System.out.print("*");            }            System.out.print("\n");        }    }
------解决方案--------------------
这样行不?
public class test{
public test(int len){
System.out.println(f(len,len,len));
}
public String f(int x,int y,int len){
return y<0?"":(x<=len/2-Math.abs(y-len/2-1)?"*":" ")+(x==len?"\n":"")+f(x==0?len:x-1,x==0?y-1:y,len);
}
public static void main(String args[]){
new test(7);
}
}
------解决方案--------------------
[code=java]
public class PrintSign{
private static final int N = 5;
public static void main(String[] args) {
    for(int i=1; i <=N; i++) {
      System.out.println(PrintSign.Sign(i));
    }
    for(int i=N; i>0; i--) {
      System.out.println(PrintSign.Sign(i));
    }
 
  }
  public static String Sign(int n) {
    if (n == 1)
    return "*";
    else
      return ("*" + Sign(n-1));

}
}
[/code]
------解决方案--------------------
Java code
public   class   PrintSign{       private   static   final   int   N   =   5; public   static   void   main(String[]   args)   {                 for(int   i=1;   i <=N;   i++)   {                           System.out.println(PrintSign.Sign(i));                   }                 for(int   i=N;   i> 0;   i--)   {                           System.out.println(PrintSign.Sign(i));                   }                     }         public   static   String   Sign(int   n)   {                 if   (n   ==   1)                       return   "*";                 else                         return   ("*"   +   Sign(n-1));           } }
  相关解决方案