输入:  3 5 8
输出:
3 1 3 4 4 3 1 3
4 2 4 5 5 4 2
5 3 5 1 1 5
1 4 1 2 2
2 5 2 3
3 1 3
4 2 
5怎么写,求助,谢谢

解决方案 »

  1.   

        
        public static void process(int first, int last, int size) {
            if (! (first < last && last < size)) {
                throw new IllegalArgumentException("invalid input");
            }
            for (int rowSize = size; rowSize > 0 ; rowSize--) {
                int pre = first++;
                for (int i = 0; i < rowSize; i++) {
                    if (i == 0) {
                        System.out.print(myMod(pre, last) + " ");
                        continue;
                    }
                    int next = pre + size - i + 1;
                    System.out.print(myMod(next, last) + " ");
                    pre = next;
                }
                System.out.println();
            }
        }
        
        private static int myMod(int i, int last) {
            int result = i % last;
            if (result == 0) {
                result = last;
            }
            return result;
        }
    调用时:process(3, 5, 8)