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