Java输出等腰三角形
形如:
*
***
*****
*******
*********
刚开始用了3个循环,第一个用来换行,第二个控制输出左边的空格,第三个用来输出右边的 * 号
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.close();
for (int i = 1; i < n + 1; i ++) {
for (int k = 0; k < n - i; k++) {
System.out.print(" ");
}
for (int j = 0; j < 2 * i - 1; j++) {
System.out.print("*");
}
System.out.print("\n");
}
}
}
后来就想,能不能直接用printf格式化输出,每行输出 n+i 个字符,于是
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.close();
for (int i = 0; i < n; i++) {
String format = "%" + (n + i) + "s\n";
System.out.printf(format, new String(new char[2 * i + 1]).replace("\0", "*"));
}
}
}