上一次我在这里,我在计算机科学家庭作业中需要帮助的唯一问题是在100行上制作一个直角三角形,这里是代码:
public class PrintTriangle {
public static void main(String[] args) {
// Print a right triangle made up of *
// starting at 100 and ending with 1
int i = 100;
while (i > 0) {
for (int j = 0; j < i; j++)
System.out.print("*");
System.out.println();
i--;
}
}
}
好吧,现在他要求我们做相反的事情。这是实际的问题:
“编写一个程序,将绘制一个100行的直角三角形 以下形状:第一行,打印100'',第二行,99 ''...最后一行,只有一个'*'。使用for循环来解决这个问题。 将程序命名为PrintTriangle.java“
*****
****
***
**
*
我确定它很简单,但我到目前为止所尝试的一切都已经失败或者一次只创造了1个空间。任何建议或帮助将不胜感激!提前谢谢你!
答案 0 :(得分:2)
好的,先来看看这两个问题。你会如何联系他们。
由于第二个问题与第一个问题相反,所以你在第一个代码中首先做的是,你需要在下一个问题中做到最后。
因此,你的循环实际上应该向下工作,它在下面的代码中结束。
int i = 100;
for (int j = 0; j < i; j++)
System.out.print("*");
所以,想想你需要做些什么来使这个循环向后工作。
提示: -
从100减少到0是向后
****
***
**
*
此外,在您的上述模式中,您看到在实际打印spaces
之前需要先打印characters
所以,您也需要考虑这一点。
所以,在这里你必须实际打印两个不同的字符: -
Spaces
,其次是,*'s
。以下是模式: -
max
(在您的情况下为100)i
)具有( i
)spaces
的数量(第0行有0个空格,第1行有1个空格)n - i
)stars
的数量(第0行有100颗星,第1行有99颗星)因此,您可以在此处看到实际需要two
循环。
分析我所说的内容,并提出一些代码。试试看。
答案 1 :(得分:0)
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
for (int j = 0; j < i; j++)
System.out.print(" ");
for (int j = i; j < 100; j++)
System.out.print("*");
System.out.println();
}
}
}
答案 2 :(得分:0)
我只想告诉你如何做到这一点。 理解模式。
就像在上一个问题上打印*一样,您需要打印空格。然后按相反的顺序打印星星。
*
**
***
***
**
*
答案 3 :(得分:0)
对于这些金字塔(我称之为金字塔),首先要确保你的空位正确
* * * * *
- * * * *
- - * * *
- - - * *
- - - - *
现在您可以看到两种模式,现在您可以对其进行编程。这是psuedocode ......
FOR I=1 to N
FOR J = 1 to I-1
PRINT " "
ENDFOR
FOR K = 1 to N-I+1
PRINT "*"
ENDFOR
PRINT "\n"
ENDFOR
答案 4 :(得分:0)
int i = 1;
while (i =< 100) {
// first put spaces as long as it is necessary
// it will be i times less than 100
// for example for the first line (i = 1), 99 space (100-i) and 1 star (i)
// for the 50. line (i == 50), 50 space (100-i) and 50 stars (i)
for(int j = 0; j < 100-i; j++)
System.out.print(" ");
// then the stars
for (int j = 0; j < i; j++)
System.out.print("*");
System.out.println();
i++;
}
答案 5 :(得分:0)
以下代码可以帮助您找到解决方案。
class ReverseTriangle {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
for (int j = 0; j < i; j++)
System.out.print(" ");
for (int j = i; j < 100; j++)
System.out.print("*");
System.out.println();
}
}
}
答案 6 :(得分:0)
public class PrintTriangle {
public static void main(String[] args) {
for(int i=10;i>0;i--)
{
for (int j = 1; j < i; j++)
System.out.print("*");
System.out.println();
}
}
}
答案 7 :(得分:0)
public static void printPyramid(int ln){
for(int j=ln;j>0;j--){
for(int i=ln;i>0;i--) {
if (j >= i) {
System.out.print("*");
} else {
}
System.out.print(" ");
}
System.out.println();
}
}
public static void printReversePyramid(int ln){
for(int j=0;j<ln;j++){
for(int i=ln;i>=0;i--) {
if (j >= i) {
System.out.print("*");
} else {
}
System.out.print(" ");
}
System.out.println();
}
}
public static void printDiamond(int ln){
for(int j=0;j<2*ln+1;j++){
for(int i=ln;i>=0;i--) {
if (j >= i && j < ln+1) {
System.out.print("*");
} else if(j > ln && (2*ln)-j>=i){
System.out.print("*");
}
else {
}
System.out.print(" ");
}
System.out.println();
}
}