打印三角形 这里写代码片
public class Threads implements Runnable{
public static void main(String[] args) {
//n 为行数
int n=5;
start(4);
}
public static void start(int n){
//倒三角星
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" "); //打印空白
}
for (int k = 0; k <2*(n-i)-1; k++) {
System.out.print("*"); //打印星
}
System.out.println(); //换行
}
//正三角星
for (int i = 0; i < n; i++) {
for (int j = n-1; j >i; j--) {
System.out.print(" "); //打印空白
}
for (int k = 0; k <2*i+1; k++) {
System.out.print("*"); //打印星
}
System.out.println(); //换行
}
}
这里解释下思路:三角星里用了三层嵌套循环 ,我们想想下把三角形填满就是个正方向,需要做的是在这里按规则的填上星星
第一层 首先确定打印几行 n
第二层是“开始”打印空白 观察下三角形空白 第一层是0 个 第二层是2个 第三层是4个 第4层是 6个
让后你发现只需要左边空白 每一层的星星都会减少 右边的空白可以忽略 就发现 1到4层的 空白就是 每一层的层数
第三层就是开始计算每一层的星星 我们发现每一层的星星都是奇数 那么就是 2n-1
往下就是每层减少2个 就是 2*i
0 1 2 3 循环次数
7 5 3 1 每一层星星
2n-2i-1 一一2(n-i)*2 就是星星的公式
这样三层嵌套下来 倒三角星就出来了
正三角星 就是每层星星增加两个 2*i+1
空白 就是递减 n-1 –
下面介绍 菱形打印
这里写代码片
for(int t=0;t<100;t++){ //循环100次
for (int i = 0; i < n; i++) { \\菱形右边斜
for (int j = 0; j < i; j++) {
System.out.print(" "); \\空白
}
for (int j = 0; j <n; j++) {
System.out.print("*"); \\星星
}
System.out.println();
}
for (int i = 0; i <n; i++) { \\菱形左边斜
for (int j = n-1; j >i; j--) {
System.out.print(" "); \\空白 出每层递减
}
for (int j = 0; j <n; j++) {
System.out.print("*"); \\星星
}
System.out.println();
}
}
三层循环 和上面的类似 这里每一层的星星是固定的 不变 变化的只是每一层的空白