面试题:打印出下面规律图形

来源:互联网 发布:知金教育信誉度怎么样 编辑:程序博客网 时间:2024/04/30 04:41

题目:打印出下面规律图形
1
6  2
10 7  3
13 11 8  4
15 14 12 9 5


分析:
每行第一位数字都是由上一行每一位数字加剩余的行数再加一
每行第二位数字开始,都是由上一位数字减剩余的行数再减它当前位数再加二


int hang = 5; //总共打印行数int diyi = 1;//每行打印第一个数字for (int i = 1; hang > 0; i++) {int k = diyi;for (int j = 0; j < i - 2; j++) {//控制每行打印数字的位数/* * 每行第二位数字开始,由前一位数字减剩余行数再减j++ * 例如第三行 * 11=13-2-0(剩余行数2行,j为0) * 8=11-2-1(剩余行数2行,j为1) */k = k - hang - j;System.out.print(k + " ");}/*  * 每行第一位数字由上一行第一位数字+剩余行数+1 * 第二行6=1+4+1 * 第三行10=6+3+1 * 第四行13=10+2+1 * ... */diyi = hang + diyi;hang--;System.out.println(i);if(hang > 0){//打印每行第一个数字System.out.print(diyi + " ");}}


0 0