如何缩短Java生成数字钻石图案代码并实现尺寸可调整功能
实现思路
- 你原有代码的问题是把每行的打印逻辑硬编码了,自然没法动态调整尺寸。我们把钻石最中间的最大数字作为可调参数
size,所有行的空格、数字数量都通过这个参数动态计算即可。 - 每行的规律统一:对当前要打印的数字
n,左边空格数为size - n,数字重复次数为2*n - 1,不需要拆分上下半部分的逻辑,各自循环就行。
优化后可调整尺寸的代码
public class Task2 { // 入参size为钻石最中间的最大数字,调整size即可修改图案尺寸 public static void printDiamond(int size) { // 打印上半部分(包含中间最长行) for (int n = 1; n <= size; n++) { // 打印左侧空格 for (int i = 0; i < size - n; i++) { System.out.print(" "); } // 打印数字 for (int i = 0; i < 2 * n - 1; i++) { System.out.print(n); } System.out.println(); } // 打印下半部分 for (int n = size - 1; n >= 1; n--) { // 逻辑和上半部分完全一致 for (int i = 0; i < size - n; i++) { System.out.print(" "); } for (int i = 0; i < 2 * n - 1; i++) { System.out.print(n); } System.out.println(); } } public static void main(String[] args) { // 这里传5就是你示例的效果,要改尺寸直接改参数就行 printDiamond(5); } }
使用说明
- 需要调整尺寸时,只要修改
printDiamond方法的入参即可,比如传3就会生成最大数字为3的小尺寸钻石,传7就会生成最大数字为7的大尺寸钻石。 - 整体代码比你原版本缩短了60%以上,没有冗余逻辑。
内容的提问来源于stack exchange,提问作者angryFrog
相关产品推荐
相关产品推荐

