设计输出如下形式数值的函数

2 2
3 3 3……
n n  …… n
要求用JAVA语言,递归算法

解决方案 »

  1.   

    void fun(int n){
      if(1==n){
        System.out.println(n);
        return ;
      }
      fun(n-1);
      for(int i=0;i<n;i++){
         System.out.println(n);
      }
    }
      
      

  2.   

    void fun(int n){ 
      if(1==n){ 
        System.out.println(n); 
        return ; 
      } 
      fun(n-1); 
      fun2(n,n); 
      } 
    } void fun2(int n,int len){
      if(1==len){
        System.out.println(n);
      }
      fun2(n,len-1);
      System.out.println(n);
    }  这个一个for也没有了,全是递归.
      

  3.   

    void fun(int n){ 
      if(1==n){ 
        System.out.println(n); 
        return ; 
      } 
      fun(n-1); 
      for(int i=0;i <n;i++){ 
        System.out.print(n);  }
      System.out.println(""); 

      
      

  4.   

    public void print(int now, int max) {
      for(int i = 0; i < now; i++) {
        System.out.print(now + " ");
      }
      System.out.println();
      if(now < max)
        print(now+1, max);
    }public static void main() {
      new Test().print(1, 10);
    }
      

  5.   

    public class Test{
      public static void main(String[] args){
          fun(5);
      }
      static void fun(int n){ 
      if(1==n){ 
        System.out.println(n); 
        return ; 
      } 
      fun(n-1); 
      fun2(n,n); 
      System.out.println("");
      } 
    static void fun2(int n,int len){ 
      if(1==len){ 
        System.out.print(n);
        return; 
      } 
      fun2(n,len-1); 
      System.out.print(n); 
    }  
    }
      

  6.   

       不用递归吧
    public class Test {
    public static void main(String[] args) {
    for(int i=1;i<100;i++){
    for(int j=1;j<=i;j++){
    System.out.print(i);
    }

    System.out.println("");
    }
    }
    }
      

  7.   

    把第一个for循环改成for(int i=1;;i++)
      

  8.   

    既然题目说递归,那意思可能就是不让用for循环,程序没有for了
    省心了吧.
      

  9.   

    为了验证是否正确   最好是把结果写入到一个txt文件中
      

  10.   


    参数,0,0,n
    public void fun(int range ,int line, int len)
    {
    if(range<=line&&line<len)
    {
    range++;
    System.out.print(line+1+" ");
    }
    else if(line<=len)
    {
    range=0;
    line++;
    System.out.println();
    }
    if(line<=len)
    {
    fun(range,line,len);
    }
    }
      

  11.   

    谢谢各位,17楼我结贴了才看见你的帖子没能给分,SORRY了,你的程序也很好,谢谢
      

  12.   

    public class OutPrint {
    static void print(int n){
    if(n==1){//打印1
    System.out.println(1);
    return;
    }
    print(n-1);//打印(递归打印2到n-1之间的数)
    for(int i=0;i<n;i++)//打印n个n
    System.out.print(n+"  ");
    System.out.println();//换行

    }
    public static void main(String args[])
    {
    print(16);
    }
    }输出
    1
    2  2  
    3  3  3  
    4  4  4  4  
    5  5  5  5  5  
    6  6  6  6  6  6  
    7  7  7  7  7  7  7  
    8  8  8  8  8  8  8  8  
    9  9  9  9  9  9  9  9  9  
    10  10  10  10  10  10  10  10  10  10  
    11  11  11  11  11  11  11  11  11  11  11  
    12  12  12  12  12  12  12  12  12  12  12  12  
    13  13  13  13  13  13  13  13  13  13  13  13  13  
    14  14  14  14  14  14  14  14  14  14  14  14  14  14  
    15  15  15  15  15  15  15  15  15  15  15  15  15  15  15  
    16  16  16  16  16  16  16  16  16  16  16  16  16  16  16  16