A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 岳阳天 中级黑马   /  2016-9-8 21:13  /  1221 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 岳阳天 于 2016-9-8 21:18 编辑

1.28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?
2. 有这样一组数列:  1/2,1/4,2/6,3/8,5/10,8/12.....,统计前20项之和,精确到小数点后2位;
3.代码实现一个n 阶数组,
1 ,  2,  3,  4
12 13 14  5
11 16 15 6
10 9   8   7

6 个回复

倒序浏览
1 ,  2,  3,  4
12 13 14  5
11 16 15 6
10 9   8  7
回复 使用道具 举报
package com.heima.lianxi;

import java.util.Scanner;

public class Test2 {

        /**
         * * 第3题:写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
         *        1        2        3        4
         *        12        13        14        5
         *        11        16        15        6
         *        10        9        8        7
         * @author Administrator
         */
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int n;
                while(true){
                        try{
                                n = sc.nextInt();
                                break;
                        }catch(Exception e){
                                System.out.println("输入有误,请输入一个正整数");
                        }
                }
                int [][]arr = new int[n][n];
               
                method(arr);
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < arr.length; j++) {
                                System.out.print(arr[j] + "\t");
                        }
                        System.out.println();
                }
        }

        private static void method(int[][] arr) {
                int i = 0;
                int j = 0;
               
                int max = arr.length -1;
                int min = 0;
               
                int num = 1;
                while(min<=max){
                        while(j<max){
                                arr[j++] = num++;
                        }
                        while(i<max){
                                arr[i++][j] = num++;
                        }
                        while (j>min){
                                arr[j--] = num++;
                        }
                        while (i>min){
                                arr[i--][j] = num++;
                        }
                        if(min ==max){
                                arr[j]= num;
                        }
                        max --;
                        min ++;
                        
                        j++;
                        i++;
                }
        }

}
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
谢谢分享。思考下。。
回复 使用道具 举报
表示我被第二题难住了
回复 使用道具 举报
感觉这更多的是数学问题不是编程问题。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马