吃吃753 2021-12-15 22:26 采纳率: 58.8%
浏览 63
已结题

Java练习题,可能是循环,第三个,大家帮我看看

img

  • 写回答

3条回答 默认 最新

  • 俺不理解 2021-12-16 10:21
    关注
    public class Test {
        public void print(int lineSum) {
            int sum = (lineSum + 1) * lineSum / 2;
            int p = 0;
            List<List<Integer>> lists = new ArrayList<>();
            //  1  2  -1  -2
            int dir = 1;
            int line = -1;
            while (p++ < sum) {
                line += dir > 0 ? 1 : (dir == -1 ? -1 : 0);
                if (line >= lists.size()) {
                    List<Integer> list = new LinkedList<>();
                    list.add(p);
                    lists.add(list);
                    dir = dir == 1 ? 2 : -1;
                } else {
                    lists.get(line).add(p);
                    dir = dir > 0 ? dir : (dir == -1
                            ? (line == 0 ? -2 : -1)
                            : 1);
                }
            }
    
            printVals(lists);
        }
    
        public static void main(String[] args) {
            Test solution = new Test();
            solution.print(10);
        }
    }
    

    输出示例

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月15日
  • 创建了问题 12月15日