我想尝试一个直角三角形星号。但我只有这个 输出:(我不能在这里放星号)
@
@@
@@@
我想要的是:
@
@@
@@@
这是我编写的代码:
public class triangles {
public static void main( String[] args ) {
for( int i = 1; i <= 10; i++ ){
for( int j = 0; j < i; j++ ){
System.out.print("*");
}
System.out.println();
}
}
}
非常感谢任何分享的想法。我是一个java新手。感谢。
答案 0 :(得分:8)
您的代码永远不会打印任何空格,这应该是一个问题。
您可以使用这种简单的方法:
for (int i = 0; i < 3; i++) System.out.println(" @@@".substring(i, i+3));
逻辑非常简单:你有两个空格和三个符号的字符串。第一行输出需要是两个空格和一个符号,因此这是字符串的前三个字符。第二行应该是一个空格和两个符号 - 这是跳过第一行后的三个字符串;等等:你只是滑过字符串,每次从头开始跳过一个并接下来的三个字符。
答案 1 :(得分:4)
for(int i = 0; i < 9; i++) {
for(int j = 9; j > 0; j--)
System.out.print(i < j ? " " : "*");
System.out.println();
}
答案 2 :(得分:0)
您的问题是您没有输出任何空白区域。计算首先偏移每一行需要多少空白,输出这个空格然后输出你的*
答案 3 :(得分:0)
尝试以下方法:
import java.io.*;
public class Star2 {
public static void main(String[] args)throws IOException {
InputStreamReader read = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(read);
int i,j,n=0,k;
System.out.print("How many stars you want to print in first row ? ");
n=Integer.parseInt(in.readLine());
for (i = 0; i<n; i=i+2)
{
for (j=i; j<n;j++)
System.out.print ("*");
System.out.println();
}
}
}
答案 4 :(得分:0)
试试这个:
public class PrintPyramidStar {
public static void main(String args[]) {
int c = 1;
for (int i = 1; i <= 5; i++) {
for (int j = i; j < 5; j++) {
System.out.print(" ");
}
for (int k = 1; k <= c; k++) {
if (k % 2 == 0)
System.out.print(" ");
else
System.out.print("*");
}
System.out.println();
c += 2;
}
}
}