for循环输出菱形的形状【java】

使用for循环语句输出以下“菱形”效果:

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

代码  

 1 /*
 2     *
 3    ***
 4   *****
 5  *******
 6 *********
 7  *******
 8   *****
 9    ***
10     *
11
12 分析:
13     - 上层(共5层)
14         每层构成:每层每层空格数+每层星星数
15             第1层 -- 空格数:4 + 星星数:1
16             第2层 -- 空格数:3 + 星星数:3
17             第3层 -- 空格数:2 + 星星数:5
18             第4层 -- 空格数:1 + 星星数:7
19             第5层 -- 空格数:0 + 星星数:9
20
21             分析:
22             第1层 -- 空格数:4(= 5-1) + 星星数:1(= 2*1-1)
23             第2层 -- 空格数:3(= 5-2) + 星星数:3(= 2*2-1)
24             第3层 -- 空格数:2(= 5-3) + 星星数:5(= 2*3-1)
25             第4层 -- 空格数:1(= 5-4) + 星星数:7(= 2*4-1)
26             第5层 -- 空格数:0(= 5-5) + 星星数:9(= 2*5-1)
27
28             推理:(上层共 layer 层)
29             第i层 -- (空格数 = layer-i) + (星星数 = 2*i-1)
30
31
32     - 下层(下层共 layer-1 层)
33             第1层 -- 空格数:1 + 星星数:7
34             第2层 -- 空格数:2 + 星星数:5
35             第3层 -- 空格数:3 + 星星数:3
36             第4层 -- 空格数:4 + 星星数:1
37
38             分析:效果等效(共4层)
39             下层的第1层对应上层的第4层 -- 空格数:1 + 星星数:7
40             下层的第2层对应上层的第3层 -- 空格数:2 + 星星数:5
41             下层的第3层对应上层的第2层 -- 空格数:3 + 星星数:3
42             下层的第4层对应上层的第1层 -- 空格数:4 + 星星数:1
43
44
45             推理:
46             第i层 -- (空格数 = i) + (星星数 = 2*(layer-i)-1)
47 */
48
49
50 public class StarTree
51 {
52     public static void main(String[] args){
53         int layer = 5;
54
55         // 一、上层(显示 layer 行)
56         for(int i=1;i<=layer;i++){
57
58             // 1、获取空格需要显示数量
59             int spaceNum = layer-i;
60             for(int j=1;j<=spaceNum;j++){  // 需要打印空格的数量
61                 System.out.print(" ");
62             }
63
64             // 2、获取星星需要显示的数量
65             int starNum = 2*i-1;
66             for(int j=1;j<=starNum;j++){ // 需要打印星星的数量
67                 System.out.print("*");
68             }
69             // 3、换行
70             System.out.println();
71         }
72
73         // 二、下层(显示 layer-1 行)
74         for(int i=1;i<layer;i++){
75
76             // 1、获取空格需要显示数量
77             int spaceNum = i;
78             for(int j=1;j<=spaceNum;j++){
79                 System.out.print(" ");
80             }
81             // 2、获取星星需要显示的数量
82             int starNum = 2*(layer-i)-1;
83             for(int j=1;j<=starNum;j++){
84                 System.out.print("*");
85             }
86             // 3、换行
87             System.out.println();
88
89         }
90     }
91 }

代码结果显示:

时间: 2024-08-05 19:00:13

for循环输出菱形的形状【java】的相关文章

【趣题】用for循环输出菱形

用for循环输出如上图所示的菱形 思路: 我们以17为例 首先,输出一列九行的星号,这是最熟悉的逐行输出 public class test{ public static void main(String[] args) { int linesum = 17;//菱形的最大行数,输入一个 奇数 for (int i=1; i<=linesum; i++){//i为当前所在行 System.out.println("*"); } } } 分析一下菱形 红线以上的部分星号是递增的,红

用JAVA 的for循环输出 菱形

public class For{ public static void main(String[] args){ //首先.把菱形看成上下两部分,上五下四,所以,第一个for循环有5次,第二个for循环有4次 for( int i = 1; i <= 5; i++){ //将空格和*分开看,看" "的变化i=1时,它是4,2的时候是3,找规律 for( int j = 1; j <= 5-i ; j++){ System.out.print(" ");

for循环输出漏斗的形状【java】

使用for循环语句输出以下"漏斗"效果: +------+ |\..../| | \../ | | \/ | | /\ | | /..\ | |/....\| +------+ 代码:(解决思路详见代码头部多行注释) 本例代码中使用了常量 HEIGHT,是指漏斗内部高度值的一半作为常量值. /* * +------+ HEIGHT:3 * |\..../| 第一行:空格数:0 点数:4 空格数:0 * | \../ | 第二行:空格数:1 点数:2 空格数:1 * | \/ | 第三行

for循环输出树木的形状【java】

使用for循环语句输出以下"树木"效果: * *** ***** ******* ********* * * * * * 代码: /* * *** ***** ******* ********* * * * * * 分析: - 树顶(共5层) 每层构成:每层每层空格数+每层星星数 第1层 -- 空格数:4 + 星星数:1 第2层 -- 空格数:3 + 星星数:3 第3层 -- 空格数:2 + 星星数:4 第4层 -- 空格数:1 + 星星数:7 第5层 -- 空格数:0 + 星星数:9

for循环输出素数探究【java】

一.判断953是不是为素数(质数). 代码: 1 /** 2 判断953是不是为素数(质数) 3 分析: 4 素数指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数. 5 假设953是素数,则: 6 953 % 2 !== 0 7 953 % 3 !== 0 8 953 % 4 !== 0 9 -- 10 953 % 952 !== 0 11 反推得出,只要953被2~952之间的任何一个整数整除,则953不是素数. 12 13 除数从2开始到952按照整数依次递增,则

for循环输出菱形

package com.hanqi; public class lingxing { public static void main(String[] args) { for(int m=1;m<=10;m++) { //输出空格 for(int n=9;n>=m;n-- ) { System.out.print(" "); } //输出* for(int n=1;n<=m;n++) { System.out.print("*"); } for(i

for循环输出空心菱形的形状【java】

使用for循环语句输出以下"空心菱形"效果: * * * * * * * * * * * * * * * * 建议优先参考笔者的另一篇文章:<for循环输出菱形的形状[java]> 代码: 1 /* 2 * 3 * * 4 * * 5 * * 6 * * 7 * * 8 * * 9 * * 10 * 11 12 分析: 13 上图形似于实心菱形 14 * 15 *** 16 ***** 17 ******* 18 ********* 19 ******* 20 *****

【C语言】用循环语句输出菱形

//用循环语句输出菱形 #include <stdio.h> int main() { int i,j; for(i=0;i<=3;i++) //上4行 { for(j=0;j<=3;j++) //上4行的左边 { if(i+j<=2) printf(" "); else printf("*"); } for(j=4;j<=6;j++) //上4行的右边 { if(j-i>=4) printf(" ");

while循环输出如下语句: 2*5=10 4*10=40 6*15=90 …… ?*100=?

import java.util.Scanner; /** * @author 蓝色以太 while循环输出如下语句: 2*5=10 4*10=40 6*15=90 -- ?*100=? */ public class While { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入层高:"); int num = sc.nextIn