打印以下模式的程序

时间:2014-02-18 21:15:12

标签: java

我必须编写程序来打印此输出:

                                   1
                                  212
                                 32123
                                4321234
                               543212345

我已经成功编码了这部分模式:

                                   1
                                   12
                                   123
                                   1234
                                   12345

但是,我没有达到第二部分。这是我的代码:

for(int i=1; i<=5; i++) {
    for(int j=1; j<=i; j++) {
        System.out.print(j);
    }
System.out.println();
}

9 个答案:

答案 0 :(得分:1)

为什么不递归?只因为它很有趣;)

public static void main(String args[]) {
    System.out.println(pyramid(5));
}

public static String pyramid(int rank) {
    if (rank == 1) {
        return "1\n";
    }
    return pyramid(rank - 1) + mirror(rank) + "\n";
}

public static String mirror(int rank) {
    if (rank == 1) {
        return "1";
    } else {
        return rank + mirror(rank - 1) + rank;
    }
}

答案 1 :(得分:0)

在当前j for循环之前,您需要另一个j for循环,该循环从5倒计时到(但不包括){{1 }}。决定是否打印空格或1本身,具体取决于j是否大于j

i

答案 2 :(得分:0)

正如有人已经注意到的那样,你可以通过一个双循环来轻松实现这个目标,一个从i倒数,一个倒数:

    for(int i=1; i<=5; i++) {

        for(int j=i; j>=2; j--) {
            System.out.print(j);
        }
        for(int j=1; j<=i; j++) {
            System.out.print(j);
        }
        System.out.println();
    }

如果您不立即打印,也可以在单个for循环中完成相同的操作。例如,你可以用一个构建一个StringBuffer,然后在两边添加数字直到i == j,然后在内部循环之外打印。

    for(int i=1; i<=5; i++) {
        StringBuffer buffer = new StringBuffer();
        buffer.append(1);
        for(int j=2; j<=i; j++) {
           buffer.insert(0, j);
           buffer.append(j);
         }
        System.out.println(buffer);
    }

答案 3 :(得分:0)

package recAaA;

public class testA {

    static void rec(int startVal, int endVal)
    {
        if(startVal==0)startVal=-2;
        if(startVal<-endVal) return;
        System.out.print(Math.abs(startVal));
        rec(startVal-1,endVal);

    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int imax=5;
        for(int i=1;i<imax+1;i++)
            {
                  for(int j=0;j<imax+1-i;j++)
                  {
                        System.out.print(" ");
                  }
                  rec(i,i);
                  System.out.println();
             }
    }


}

输出:

     1
    212
   32123
  4321234
 543212345

如果你给我startVal和i + 1到endVal,输出变为

     12
    2123
   321234
  43212345
 5432123456

答案 4 :(得分:0)

这是输出数字的代码;你所要做的就是修正间距。

    for (int i = 1; i <= 9; i++) {
        BigInteger b =
            BigInteger.TEN.pow(2*i-1)
            .subtract(BigInteger.ONE)
            .divide(BigInteger.valueOf(9))
            .multiply(BigInteger.valueOf(i+1))
            .subtract(BigInteger.TEN.pow(i)
                      .subtract(BigInteger.ONE)
                      .divide(BigInteger.valueOf(9))
                      .pow(2));
        System.out.println(b);
    }

也就是说,对于1-9范围内的每个整数,它打印((10 2n-1 -1)/ 9)(n + 1) - ((10 n -1)/ 9) 2 。非常简单。

答案 5 :(得分:0)

/* Basically logic is that in a horizontal line upto the mid ,the number is decrementing and after the mid, the number starts incrementing 
*/


public class java {

    public static void main(String[] args) throws IOException {
        int n;
        InputStreamReader io = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(io);
        System.out.println("Enter the height in the number of lines vertically");
        n = Integer.parseInt(br.readLine());
        for (int i = 1; i <= n; i++) {
            int k = i;

            for (int j = 1; j <= 2 * i - 1; j++) {
               System.out.print(k);
                if (j >= (((2 * i - 1) / 2) + 1))
                    k++;  
                 else if(j<(2*i-1)/2+1) k--;
            }
            System.out.println();
        }
    }
}

我希望这会有所帮助!

答案 6 :(得分:0)

class App extends React.Component{

  state = {
    audio : new Audio()
  }

  play = (sound)=>{

    const {audio} = this.state;
    audio.src = sound;
    audio.play();
  }

  render(){

    return (
      <div className="App">
        <PadInput label="A" sound={A} play={this.play}/>
      </div>
      );

  }

}

const PadInput = ({label, sound, play})=>(
  <input type="button" value={label} onClick={()=>play(sound)} />
)

答案 7 :(得分:0)

    for(int i=1;i<=100; i++) {
        for(int j=100;j>i;j--)
            System.out.print("  "); 

        for(int k=i;k>1;k--)
        System.out.print(k+" ");            
        for(int j=1; j<=i; j++) 
            System.out.print(j+" ");

    System.out.println();
}

答案 8 :(得分:-1)

public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        Scanner in = new Scanner(System.in);
        System.out.print("Enter no ");
        int n=in.nextInt();

        for(int i=1;i<=n;i++)
        {
            int l=n-i;
            while(l!=0)
            {
                System.out.print(" ");
                l--;
            }
            for(int j=i;j>=2;j--)
            {
                System.out.print(j);

            }

            for(int k=1;k<=i;k++)
            {


                System.out.print(k);

            }


            System.out.println();
        }
    }

}