2015-11-16 34 views
-1

好了,所以这段代码的三角点了,但我需要使它指向正确的请帮忙我需要做的三角形向右转

public void five_a_pointUp (int num) 
{ 
    System.out.print('\f'); 
    for (int x=1; x<=num; x += 2) 
    { 
     for (int y=0; y <= ((num - x)/2); y++) 
     { 
      System.out.print(" "); 
     } 
     for (int z=0; z<x; z++) 
     { 
      System.out.print("#"); 
     } 
     System.out.println(); 
    } 
} 

我曾尝试这个代码,但它在结束一个无限循环

{ 
    System.out.print('\f'); 
    for(int x=1; x<=num;x++) 
    { 
     for(int y=0; y<=x; x++) 
     { 
      System.out.print("#"); 
     } 
    } 
} 
+1

你能告诉我们你试过了什么,或者有什么特别让你困惑? – TbWill4321

+0

尝试在纸上写下这个三角形。从左上角开始。你需要做什么步骤? – Pshemo

+0

我很困惑如何使它指向正确的,我已经尝试了其他代码,但大多数已经在无限循环中结束,请帮助我今天到期 – CompNerd

回答

0

因为这是我的功课不能给你工作的代码,但你应该设法做精与pseducodoce。所以让我们开始。

尝试将此问题分解为较小的问题。举例来说,如果我们想打印三角形这样

# 
## 
### 
#### 
### 
## 
# 

让我们尝试创建一个代码,它将打印

# 
## 
### 
#### 

,当它完成,以免添加代码,它将打印

### 
## 
# 

所以我们的代码可以分为两种方法,如:

printUpperPart(n); 
printLowerPart(n-1);//notice size of lower part compared to upper one 

让我们现在关注我们的上半部分。我们需要什么?

  • 循环,这将是负责调用打印4线,
  • ,并在循环中,我们需要打印的#适当数量的,所以我们需要另一个循环为。

所以我们的代码可以像

for (line in 1..n) 
    for (hashPosition in 1..line) 
    print one hash 
    move to next line 

现在尝试实现它,并基于该揣摩代码下部。

+0

所以我需要4个循环或可以在2中完成? – CompNerd

+0

好吧我编码的前半部分(int x = 1; x <= num; x ++) System.out.println(“”); (int y = 1; y <= x; y ++) { System.out.print(“#”); } } – CompNerd

+0

即使只有一个循环,你也可以做到,但是你的代码会非常难看。我发布了易于阅读和编写的解决方案。 – Pshemo