【笔试强化】Day 6

文章目录

  • 一、单选
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
  • 二、不定项选择
    • 1.
    • 2.
    • 3.
  • 三、编程
    • 1. 把字符串转换成整数
      • 解法:
      • 代码:
    • 2. 不要二
      • 解法:
      • 代码:

一、单选

1.

【笔试强化】Day 6_第1张图片

正确答案:D

2.

【笔试强化】Day 6_第2张图片

正确答案:B

3.

【笔试强化】Day 6_第3张图片

正确答案:D

4.

【笔试强化】Day 6_第4张图片

正确答案:C

5.

【笔试强化】Day 6_第5张图片

正确答案:C

6.

【笔试强化】Day 6_第6张图片
【笔试强化】Day 6_第7张图片

正确答案:C

7.

【笔试强化】Day 6_第8张图片

正确答案:B

二、不定项选择

1.

【笔试强化】Day 6_第9张图片

正确答案:A,B,C

2.

【笔试强化】Day 6_第10张图片

正确答案:C,D

3.

【笔试强化】Day 6_第11张图片

正确答案:A,B,D

三、编程

1. 把字符串转换成整数

【笔试强化】Day 6_第12张图片
【笔试强化】Day 6_第13张图片
原题链接


解法:

1、把字符串转换为字符数组
2、上次计算的结果*10,相当于10进制进位,然后加当前位的值

注意:

  1. 空字符串
  2. 正负号处理
  3. 数字串中存在非法字符

代码:

public class Solution {
    public int StrToInt(String str) {
        if(str.isEmpty()) {
            return 0;
        }
        char[] ch = str.toCharArray();
        int flg = 1;
        if(ch[0] == '+') {
            flg = 1;
            ch[0] = '0';
        }
        if(ch[0] == '-') {
            flg = -1;
            ch[0] = '0';
        }

        int sum = 0;
        for(int i = 0; i < ch.length; i++) {
            if(ch[i] < '0' || ch[i] > '9') {
                sum = 0;
                break;
            }

            sum = sum*10 + ch[i] - '0';
        }
        return flg*sum;
    }
}

【笔试强化】Day 6_第14张图片


2. 不要二

【笔试强化】Day 6_第15张图片
原题链接


解法:

这道题虽然题干很长,但是仔细读题之后,没有那么难

首先我们要先看欧几里得公式是什么
化简之后: ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4

所以(x1,y1)的右边两个位置 和 下边的两个位置不能放蛋糕

因此:
假设放蛋糕的位置是(x1,y1),则不能放蛋糕的位置(x2,y2)
满足x 1== x2,y1-y2 == 2 或者 x1-x2 == 2,y1 == y2

定义一个二维数组,arr开空间并初始化
每个位置初始化为 0,表示当蛋糕a[i][j] 位置放蛋糕,
则可以标记 a[i][j+2]和a[i+1][j]位置不能放蛋糕
遍历一遍二维数组,标记出不能放蛋糕的位置
统计也就统计出了当蛋糕的位置数。


代码:

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int W = in.nextInt();//长
        int H = in.nextInt();//宽
        int[][] arr = new int[W][H];
        int count = 0;

        for(int i = 0; i < W; i++) {
            for(int j = 0; j < H; j++) {
                if(arr[i][j] == 0) {
                    count++;
                    if(i+2 < W) {
                        arr[i+2][j] = 1;
                    }
                    if(j+2 < H) {
                        arr[i][j+2] = 1;
                    }
                }
            }
        }
        System.out.println(count);
    }
}

【笔试强化】Day 6_第16张图片

你可能感兴趣的:(笔试强化,算法,java)