打印三角形递增图形

最近面试遇到一个手写代码问题,本人对手写代码真的无感了,当时脑子里也没多想,放弃了,回来后静静想了一下,感觉还是比较简单
题目是这样的,要求打印类似如下图形:

1
2 * 3
4 * 5 * 6
7 * 8 * 9 * 10
...............

本质上是用一个循环可以解决的,但难度在于每个循环都要依赖于上一层的最后一个数字,所以要维护一个类似游标的变量,游标每层循环的时候都更新一下,具体代码如下:

/**
 * Created by on 2019/4/9.
 */
public class Fab {
    public static void print(int n){
        if(n<=0){
            return;
        }
        //这个就是游标了
        int cursor = 0;
        for(int i=1;i<=n;i++){
            //每层循环打印
            for(int j=1;j<=i;j++){
                //游标递增
                cursor++;
                System.out.print(cursor);
                //判断是否打印*
                if(j!=i){
                    System.out.print('*');
                }else{
                    System.out.println();
                }
            }
        }
    }
    public static void main(String[] args){
        print(15);
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。