首页 > 解决方案 > 递归函数打印方形图案有什么新想法吗?

问题描述

我有一个问题,我需要做一个递归函数来获取 int 并做一个正方形的星形图案,就像我在函数中插入 4 它会给我一样:

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

所以我做了这个递归,我想把我的想法缩小到一个函数中,你有什么建议来改进我的设计,谢谢。

static int count = 0;
public static void rect(int num){
    if(count<=0)
        return;
    if(count !=0 && num>0){
        for(int i =0; i<num;i++){
            System.out.print('*');
        }
        System.out.println();
        count--;
        rect(num);
    }
}
public static void SetCount(int num){
    count = num;
    rect(num);
}
public static void main(String[] args) {
    int i = 6;
    SetCount(i);
}

标签: javarecursion

解决方案


您可以消除该SetCount方法和第二次if检查,这样也可以:

static int count = 0;

public static void rect(int num) {
    if (count <= 0)
        return;
    for (int i = 0; i < num; i++) {
        System.out.print('*');
    }
    System.out.println();
    count--;
    rect(num);
}

public static void main(String[] args) {
    count = 4;
    rect(count);
}

推荐阅读