Java程序实现打印带对角线与不带对角线的方星图案
需积分: 5 199 浏览量
更新于2024-08-03
收藏 22KB DOCX 举报
"打印方星图案的Java程序"
在编程中,经常需要生成各种图形,其中一种常见的练习就是打印星形图案。本文将详细介绍如何使用Java语言编写程序来打印两种不同类型的方星图案:无对角线的星形方形图案和带有对角线的星形方形图案。
首先,我们需要了解基本的循环结构,这通常是通过嵌套的`for`循环实现的。在Java中,`for`循环是一种控制流语句,用于重复执行一段代码直到满足特定条件为止。在打印图案的场景中,外层循环通常控制行数,而内层循环则控制每行中的列数。
对于无对角线的星形方形图案,程序会按照以下步骤操作:
1. 用户输入行数(rows)和列数(columns)。
2. 使用外层`for`循环,从1遍历到行数(rows)。
3. 在外层循环内部,用另一个`for`循环从1遍历到列数(columns)。
4. 设计条件判断,决定何时打印星号(*)和空格。例如,当行数或列数为1(第一行或最后一行)或当前行数等于列数(第一列或最后一列)时,打印星号;其他情况下打印空格。
5. 内层循环结束后,打印一个换行符,以便开始下一行。
下面是一个无对角线星形方形图案的Java代码示例:
```java
public class GFG {
public static void main(String[] args) {
int rows = 7, columns = 7;
print_rectangle(rows, columns);
}
// 打印无对角线的星形方形图案
static void print_rectangle(int k, int l) {
for (int a = 1; a <= k; a++) {
for (int b = 1; b <= l; b++) {
if (a == 1 || a == k || b == 1 || b == l) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
```
此程序的时间复杂度为O(R*C),其中R是行数,C是列数,因为每个元素都需要被检查一次。辅助空间为O(1),因为它只使用了常量级别的额外空间。
接下来,我们考虑带有对角线的星形方形图案。在这个版本中,除了边界星号,还需要在对角线上打印星号。可以使用两个额外的变量来跟踪对角线,如下所示:
```java
public class GFG {
public static void main(String[] args) {
int rows = 9, columns = 9;
print_solid_rectangle(rows, columns);
print_diagonal_rectangle(rows, columns);
}
// 打印带有对角线的星形方形图案
static void print_diagonal_rectangle(int k, int l) {
for (int a = 1; a <= k; a++) {
for (int b = 1; b <= l; b++) {
if (a + b == k + 1 || a - b == k - 1) {
System.out.print("*");
} else if (a == 1 || a == k || b == 1 || b == l) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
```
这个程序的时间复杂度为O(N^2),其中N是给定的行数,因为每个元素都需要被检查以确定是否位于对角线上。同样,辅助空间仍然是O(1)。
通过这些简单的程序,我们可以理解如何使用Java的基本结构来创建图形,并学习如何根据需求调整逻辑来生成不同的图案。这些基础知识对于学习更复杂的算法和数据结构非常有帮助。
点击了解资源详情
233 浏览量
点击了解资源详情
2021-10-14 上传
2022-02-16 上传
2021-10-14 上传
2021-06-27 上传
2022-01-18 上传
Qshen
- 粉丝: 1706
- 资源: 419
最新资源
- 电子功用-方形电池侧焊夹具
- 基于NB-IoT的温室大棚环境监测系统 农业大棚监测控制系统 智慧农业(使用STM32开发板,仅电子资料)
- 禅道项目管理软件ZenTaoPMS v12.5.1
- 机器学习中的公平性【卡内基梅隆大学-CMU】.zip
- jQuery-Slider:完成了自定义jQuery滑块的集成,以集成到Omni-Update的TTUISD的OU校园CMS中
- 云
- Windows Communication Foundation 和 Builder NE 类型安全 API:“MATLAB 艺术”帖子的代码 - 如何使用 Builder NE 构建 Web 服务。-matlab开发
- اصالت سنج نماد اعتماد الکترونیکی-crx插件
- IPA-Ablage:IPA Dies ist eine weitere Ablagefürdie Dokumente von meiner
- 购买电视剧版权合约书
- keil MDK仿Vscode主题配色
- 毕业设计选题系统
- jetbrains-academy:JetBrains学院解决方案
- roms:光盘
- HSP
- ECG_Viewer:Matlab GUI,用于检查,处理和注释心电图(ECG)数据文件