栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面试题——把1、2、3、4、……按如下规律排列

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面试题——把1、2、3、4、……按如下规律排列

题目:

答案(Java):

    //获取行列
    public static int[] getCell(int n) {
        if (n<1) return null;
        if (n<6) return new int[]{1, n-1};
        //n大于5以后每行4个数,所以n-5除以4就得到行(这里算出的行是从0开始)
        int row = (n-5)/4;
        //所以n-5模4就得到列
        int idx = (n-5)%4;
        //如果n-5不能整除4,则行数+1
        row += (idx == 0) ? 0 : 1;
        //根据行的奇偶性修改列顺排还是逆排
        if (row%2 == 1) {
            //逆排的时候
            idx = (4-idx)%4;
        } else {
            //顺排的时候
            if (idx==0) idx = 4;
        }
        //因为题目要求行从1开始,所以行+1
        return new int[] {row+1, idx};
    }

    public static void test(int n) {
        for (int i=1; i<=n; i++) {
            int[] cell = getCell(i);
            System.out.printf("%d在%d行%c列n", i, cell[0], 'A'+cell[1]);
        }
    }


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.printf("请输入一个正整数:");
        int n = sc.nextInt();
        //int n = 2013;
        int[] cell = getCell(n);
        if (cell != null) {
            System.out.printf("%d在%d行%c列n", n, cell[0], 'A'+cell[1]);
        } else {
            System.out.printf("%d不在范围内!n", n);
        }
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915384.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号