用java解决空心金字塔的问题

(一).空心金字塔对于初学编程是有一定的挑战的,对于这样复杂的问题需要借助化繁为简的操作。

涉及到循环的多级嵌套。

1.观察这个金子塔的外形,可以通过矩阵,然后矩阵去掉一半,形成歪的金子塔,然后将这个歪的金字塔 扶正将中间镂空.

2.写代码的过程,矩阵通过两层for循环,注意层数和输入进来的toterLevel有关系,而星星的数量是层数的两倍减1,构建一个起来了一个框架,在歪三角金字塔中观察第一层有一个星星,第二层有三个,第三层有5个第四层有7个,第五层有9个,和层数呈二倍减一的现象。然后将歪三角扶正,第一层有四个空格,第二层有三个以此递减,和层数呈现出totel-i这个特性,然后将金字塔内部掏空,只留下第一个和最后一个,上面说过星星是被空格挤压到相应的位置的,这个时候只需要留下j=1和j=2*i-1,注意这里,这个地方有点绕。最后再加上一个判断,当是第五层的时候保留所有的星星。

复制代码
import java.util.Scanner;
public class Test{
	public static void main(String[] args){
		Scanner myScanner=new Scanner(System.in);
		System.out.println("请输入一个塔的层数");
	    int toterlevel=myScanner.nextInt();
	    int i=1;
	    int j=1;
	    for(i=1;i<=toterlevel;i++){//控制层数
	    	for(int k=1;k<=toterlevel-i;k++){//将歪金字塔扶正
	    		System.out.print(" ");
	    	}
	    	for(j=1;j<=2*i-1;j++){//实心金字塔

	    		if(j==1||j==2*i-1||i==toterlevel){//空心金字塔
	    		System.out.print("*");
	    		}
	    		else{
	    			System.out.print(" ");
	    		}
	    	}
	    	System.out.print("\n");//换行
	    }
	    }
}
相关推荐
景熙55236 小时前
单体项目编写思路和落地形式
java·开发语言
Ivanqhz6 小时前
Slope One 算法详解:与矩阵分解、共现矩阵的异同
java·服务器·网络·人工智能·深度学习
ikun_文7 小时前
Django开启跨域请求
python·pycharm·django
外收内放7 小时前
Python与AI应用(项目开发实战:AI智能伴侣第三版)
python·学习·ai编程
别动我齐刘海7 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
Bs_MoneyMagnet7 小时前
基于springboot+vue的非遗物质文化遗产系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
万物智能7 小时前
波形发生AD9833模块配置—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
java
Logintern097 小时前
“以一致的顺序获取锁“是预防死锁最核心、最有效的手段
python·postgresql·锁机制
计算机毕设定制辅导-无忧学长7 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台
Wang's Blog7 小时前
Java 项目实战: 外卖平台-数据库环境搭建与十一张表结构解析
java·服务器·redis