有趣的图形打印1

news/2024/7/8 5:33:29 标签: java, 流程控制, 结构, 图形

在进入Java初级班的时候,老师介绍完java基本的程序结构以及流程控制语句就会给一些练习题,其中就有一种打印图形的程序设计题,这些题重要的不是语法(虽然说是用来练习基础语法的),重要的是解题思路。


第一道题:打印一个直角三角形,三角形的行数由传入的参数来决定,即:如果传入参数为“5”,则一共打印5行,第一行打印1个“*”,第二行打印两个“*”,直到第5行打印5个“*”之后结束,打印后的图形如下所示:

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

这道题的基本思路是:通过两层循环语句来控制图形的打印,其中第一层来控制行号,第二层来控制打印字符“*”,最终达成打印一个直角三角形的目的。


具体的实现代码如下:


java">class Solution{
        /**
	 * 打印直角三角形
	 * @param rowsNum:要打印直角三角形的行数
	 */
	public static void printRightAngledTriangle(int rowsNum){
		//创建两层循环,第一层循环是控制行号,第二层循环来控制打印“*”
		for(int i = 1;i <= rowsNum;i++){
			for(int j = 1;j <= i;j++){
				System.out.print("*\t");//在对应行号打印对应个数的“*”
			}
			System.out.println();//在本行打印完成之后,进行换行操作
		}
	}
}


第二道题:打印直角边在右边的直角三角形,而其中每行的“*”个数还是与本行相同,只不过在本行“*”的左边填上适当个数的空格,具体的图像如下图所示:


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


这道题的大体思路:在第一道题的基础上,直接加在每行上加上对应个数的空格,空格的个数在本题中个数为:rowsNum-行号,在第一道题的基础上加上一个打印空格的循环即可;


具体的代码实现如下:


java">class Solution{
    public static void printRightAngledTriangle2(int rowsNum) {
		// 创建两层循环,第一层循环是控制行号,第二层循环来控制打印“空格”和“*”
		for (int i = 1; i <= rowsNum; i++) {
			// 用来打印对应行号个数的"空格"
			for(int j = rowsNum-i; j>0;j--){
				System.out.print("  ");
			}
			// 用来打印"*"
			for (int j = 1; j <= i; j++) {
				System.out.print("* ");// 在对应行号打印对应个数的“*”
			}
			System.out.println();// 在本行打印完成之后,进行换行操作
		}
	}
}


第三道题:打印空心三角形:在以上题目的基础上,添加一个边缘检测,仅仅打印处在边缘的元素,具体的呈现效果:


*
* *
*   *
*     *
* * * * *
最终效果主要是将外围的字符保留,将内部的字符隐藏;


大体思路:具体的打印流程是和上面两道题一样的,只是在打印的时候添加了一个边缘检测,即当行==1、n或者打印每行的第一个字符以及最后一个字符时,打印具体字符,否则打印空格“\t”;


具体的代码实现:


java">class Solution{
    /**
	 * 打印只有边缘的空心直角三角形,使用指定的字符
	 * @param c:指定用于生成三角形的字符
	 * @param lineNum:三角形的高度
	 */
	public static void printEmptyRightAngledTriangle(char c, int lineNum) {
		for (int i = 1; i <= lineNum; i++) {
			for (int j = 1; j <= i; j++) {
				if (j == 1 || j == i || i == lineNum) {
					System.out.print(c + "\t");
				} else {
					System.out.print("\t");
				}
			}

			System.out.println();

		}
	}
}


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


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

相关文章

有趣的图形打印2

在之前的文章《有趣的图形打印1》中&#xff0c;提到了两种题目&#xff1a;打印三角形、将图形变为空心图形&#xff0c;只保留边界。这篇文章来写一些之前问题的扩展。 第四道题&#xff1a;打印等腰三角形&#xff0c;具体图形如下所示&#xff1a; * *** ***** *****…

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; …