2021/6/8
嗯…混了个国二
2021/4/28
这都能省一。。。好水啊。。。
A:ASC
【问题描述】
已知大写字母 A 的 ASCII 码为 65,请问大写字母 L 的 ASCII 码是多少?
【答案】
76
签到题😃
public class Main {
public static void main(String[] args) {
System.out.println((int) 'L');
}
}
B:卡片
【问题描述】
小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。
小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,
就保存起来,卡片就不能用来拼其它数了。
小蓝想知道自己能从 1 拼到多少。
例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10,但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。
现在小蓝手里有 0 到 9 的卡片各 2021 张,共 20210 张,请问小蓝可以从 1 拼到多少?
【答案】
3181
用一个长度为 10 的数组存储 0 到 9 剩余的卡片,列出每一个数字变成字符串,如果当前为 0 就代表不能拼出当前卡片,然后输出上一个卡片就好了
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] chs = new int[10];
Arrays.fill(chs, 2021);
for (int i = 1; ; i++) {
for (char c : String.valueOf(i).toCharArray()) {
if (chs[c - '0'] == 0) {
System.out.println(i-1);
return;
}
chs[c - '0']--;
}
}
}
}
C:直线
【问题描述】
在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上,那么这些点中任意两点确定的直线是同一条。
给定平面上 2 × 3 2 × 3 2×3 个整点 ( x , y ) ∣ 0 ≤ x < 2 , 0 ≤ y < 3 , x ∈ Z , y ∈ Z {(x,y)|0 ≤ x < 2,0 ≤ y < 3, x ∈ Z,y ∈ Z} (x,y)∣0≤x<2,0≤y<3,x∈Z,y∈Z,即横坐标是 0 0 0 到 1 1 1 (包含 0 0 0 和 1 1 1) 之间的整数、纵坐标是 0 0 0 到 2 2 2 (包含 0 0 0 和 2 2 2) 之间的整数的点。这些点一共确定了 11 11 11 条不同的直线。
给定平面上 20 × 21 20 × 21 20×21 个整点 ( x , y ) ∣ 0 ≤ x < 20 , 0 ≤ y < 21 , x ∈ Z , y ∈ Z {(x,y)|0 ≤ x < 20,0 ≤ y < 21, x ∈ Z,y ∈ Z} (x,y)∣0≤x<20,0≤y<21,x∈Z,y∈Z,即横坐标是 0 0 0 到 19 19 19 (包含 0 0 0 和 19 19 19) 之间的整数、纵坐标是 0 0 0 到 20 20 20 (包含 0 0 0 和 20 20 20) 之间的整数的点。请问这些点一共确定了多少条不同的直线。
【答案】
40257
思路是枚举每一个起点和终点,然后用 y = k x + b y=kx+b y=kx+b 计算出斜率 k k k 和 b b b ,然后出重。不过 k k k 还有可能是小数,就天真的用 d o u b l e double double 处理了。考完出来对了答案才发现精度爆炸了。。。
最后的实现方法是用 String 表示分数,Set去重,然后还要做些细节的处理。
import java.util.*;
class Line {
String k;
String b;
@Override
public boolean equals(Object o) {
Line line = (Line) o;
return Objects.equals(k, line.k) && Objects.equals(b, line.b);
}
@Override
public int hashCode() {
int result = k != null ? k.hashCode() : 0;
result = 31 * result + (b != null ? b.hashCode() : 0);
return result;
}
}
class Point {
int x;
int y;
}
public class Main {
static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
public static void</