【笔试强化】Day 6

一、单选

1.

在这里插入图片描述

正确答案:D

2.

在这里插入图片描述

正确答案:B

3.

在这里插入图片描述

正确答案:D

4.

在这里插入图片描述

正确答案:C

5.

在这里插入图片描述

正确答案:C

6.

在这里插入图片描述
在这里插入图片描述

正确答案:C

7.

在这里插入图片描述

正确答案:B

二、不定项选择

1.

在这里插入图片描述

正确答案:A,B,C

2.

在这里插入图片描述

正确答案:C,D

3.

在这里插入图片描述

正确答案:A,B,D

三、编程

1. 把字符串转换成整数

在这里插入图片描述
在这里插入图片描述
原题链接


解法:

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;
    }
}

在这里插入图片描述


2. 不要二

在这里插入图片描述
原题链接


解法:

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

首先我们要先看欧几里得公式是什么
化简之后: ( (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);
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柒柒要开心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值