有趣的图形打印2

news/2024/7/8 6:09:39 标签: java, 图形, 算法, 结构

在之前的文章《有趣的图形打印1》中,提到了两种题目:打印三角形、将图形变为空心图形,只保留边界。这篇文章来写一些之前问题的扩展。


第四道题:打印等腰三角形,具体图形如下所示:

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


(控制台输出的图形包含较多的空格,可能与字符长度不同,所以没法对其。。大家见谅委屈,可以运行一下代码,看一下具体的实现效果吐舌头

图形分析:对于这个等腰三角形有5行,每行的空格数与字符数都有规律可循:

第一行                                                   空格数:5-1=4;字符数:2*(行号=1)-1=1
第二行空格数:5-2=3;字符数:2*(行号=2)-1=3
第三行...............................

这样,就分析完了这个图形的具体实现,下面来看代码:


java">class Solution{
    /**
	 * 打印实心三角形
	 * 
	 * @param c
	 *            :打印三角形时使用的字符
	 * @param lineNum
	 *            :三角形的行数
	 */
	public static void test(char c, int lineNum) {
		// 每行打印的空格数是lineNum-行号(行号从1开始),每行打印2*行号-1个字符

		for (int i = 1; i <= lineNum; i++) {
			int temp = lineNum - i;// 定义一个临时变量来表示行号
			while (temp > 0) {
				System.out.print(" ");
				temp--;
			}
			int j = 2 * i - 1;
			while (j > 0) {
				System.out.print(c );
				j--;
			}
			System.out.println();
		}
	}
}


第五道题:打印空心三角形,具体思路与上篇文章的“第三道题”相同,就不在这重写了,请看具体代码:

java">class Solution{
    /**
	 * 打印空心三角形
	 * 
	 * @param c
	 *            :打印三角形时使用的字符
	 * @param lineNum
	 *            :三角形的行数
	 */
	public static void emptyTest(char c, int lineNum) {
		// 每行打印的空格数是lineNum-行号(行号从1开始),每行打印2*行号-1个字符

		for (int i = 1; i <= lineNum; i++) {
			int temp = lineNum - i;// 定义一个临时变量来表示行号
			while (temp > 0) {
				System.out.print("\t");
				temp--;
			}
			int j = 2 * i - 1;
			while (j > 0) {
				if (j == 1 || j == 2 * i - 1 || i == lineNum) {
					System.out.print(c + "\t");
				} else {
					System.out.print("\t");
				}
				j--;
			}
			System.out.println();
		}
	}
}

第六道题:打印倒三角:


java">class Solution{
    /**
	 * 打印倒三角
	 * 
	 * @param lineNum
	 * @param c
	 */
	public static void printReverse(int lineNum, char c) {
		for (int i = lineNum; i > 0; i--) {//使用从后往前打印的方式
			int temp = lineNum - i;// 定义一个临时变量来表示行号
			while (temp > 0) {
				System.out.print("\t");
				temp--;
			}
			int j = 2 * i - 1;
			while (j > 0) {
				System.out.print(c + "\t");
				j--;
			}
			System.out.println();
		}
	}
}



还有很多利用字符打印特定形状的小题目,将会在以后的文章中总结。



http://www.niftyadmin.cn/n/1328750.html

相关文章

python简介和安装

最近在一个简短的培训中&#xff0c;学到了一点点python的知识&#xff0c;想写下来&#xff0c;保存一下。 由于最近机器学习和大数据的火热&#xff0c;python由于其丰富的类库和简单易学的语法也越来越受人们欢迎&#xff0c;“人生苦短&#xff0c;我用python”也证明了py…

数据库(二)-MySQL数据库的安装

在刚开始学习时&#xff0c;接触的是MySQL数据库&#xff0c;因此&#xff0c;介绍简单的MySQL数据库安装步骤&#xff0c;以及其中需要注意的问题。 MySQL数据库的安装 安装前&#xff0c;注意数据库安装路径不可以存在任何中文字符&#xff1b; 1、MySQL数据库下载&#x…

数据库(三)-了解MySQL数据库

数据的所有存储、检索、管理和处理实际上是由数据库软件——DBMS&#xff08;Database Management System 数据库管理系统&#xff09;完成的。MySQL也是一种DBMS。 DBMS可分为两类&#xff1a;一类是基于共享文件系统的DBMS&#xff08;Access&#xff09;&#xff0c;另一类…

数据库(四)-SQL语句基础

SQL(Structure Query Language)&#xff0c;即结构化查询语言。SQL是一种专门用来与数据库通信的语言。客户端就是通过使用SQL来操作服务器的。 与其他语言不同&#xff0c;SQL由很少的词构成&#xff0c;这是有意而为&#xff0c;设计SQL的最初目的就是提供一种简单易操作的手…

数据库(五)-Data Definition Language:数据定义语言(1)

DDL&#xff1a;数据定义语言&#xff0c;语句是操作数据库对象的语句&#xff0c;包括创建&#xff08;create&#xff09;、删除&#xff08;drop&#xff09;和修改&#xff08;alter&#xff09;数据库对象。 前面介绍过&#xff0c;数据库对象最基本的是数据表&#xff0…

数据库(六)-Data Definition Language:数据定义语言(2)

数据定义语言 在上一篇文章中已经介绍了操作数据库的语句包括数据库的创建、删除、以及更改数据库的数据集 一、创建表 CREATE TABLE 表名(列名 列类型,列名 列类型 ); /*注意“表名”后是"()"&#xff0c;而不是"{}";*/ /*每定义一列&#xff0c;需要与下…

数据库(七)-Data Manipulation Language:数据操作语言

DML&#xff1a;数据操作语言 数据操作在SQL主要是操作表中的数据&#xff0c;使用DML可以完成以下三个操作&#xff1a; 插入数据修改数据删除数据 下面我们来简单介绍一下DML的三种功能语句。 一、插入数据 在向数据表插入数据时&#xff0c;可以输用以下语句&#xff1a; …

Java随笔-main函数args[]数组的使用

在刚开始接触Java编程时&#xff0c;我们通常会被要求记住Java中main函数的形式&#xff0c;这也是在编程学习中接触到的第一个函数&#xff0c;即&#xff1a; public static void main(String[] args){} 当时大家肯定会有很多疑惑&#xff0c;main函数作为程序的入口&#xf…