public class Main { public static void main(String[] args) { // HashMap 用于存储卡片的个数 (用数组也可以) Map<Integer, Integer> hashMap = new HashMap<>(); hashMap.put(0, 2021); hashMap.put(1, 2021); hashMap.put(2, 2021); hashMap.put(3, 2021); hashMap.put(4, 2021); hashMap.put(5, 2021); hashMap.put(6, 2021); hashMap.put(7, 2021); hashMap.put(8, 2021); hashMap.put(9, 2021); Integer number = 1; while(true) { // 将数字转成字符串 String str = number.toString(); Integer strLength = str.length(); // 遍历字符串的每一位并判断卡片是否足够 for(int i = 0; i < strLength; i++) { char ch = str.charAt(i); String s = String.valueOf(ch); Integer size = hashMap.get(Integer.parseInt(s)); if(size <= 0) { System.out.println(number - 1); return; } else { size--; hashMap.put(Integer.parseInt(s), size); } } number++; } }}
import java.util.*;public class Main { public static void main(String[] args) { int x = 20; int y = 21; // 利用 HashSet 的去重功能 Set<String> result = new HashSet<>(); // 用 ArrayList 存储所有的点 List<Point> list = new ArrayList<>(); for(int i = 0; i < x; i++) { for(int j = 0; j < y; j++) { Point point = new Point(i, j); list.add(point); } } for(int i = 0; i < list.size(); i++) { for(int j = i + 1; j < list.size(); j++) { Point point1 = list.get(i); Point point2 = list.get(j); // 斜率不存在时 if(point1.x == point2.x) { result.add("x=" + point1.x); } else { double k =getK(point1, point2); double zero = getZero(point1, k); result.add(k + "+" + zero); } } } System.out.println(result.size()); Iterator it = result.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } // 求出直线的斜率 k public static double getK(Point point1, Point point2) { return (point1.y * 1.00 - point2.y) / (point1.x * 1.00 - point2.x); } // 根据斜率 k, 和直线上的一点, 求得 x = 0 时 y 的值 // 即 y = kx + b 里的 b 值 public static double getZero(Point point, double k) { return point.y - k * point.x; }}class Point { int x; int y; public Point(int x, int y) { this.x = x; this.y = y; }}
3、货物摆放
4、路径
public class Main { public static void main(String[] args) { System.out.println((int)'L'); }}
6、括号序列
7、时间显示
8、杨辉三角形
9、双向排序
10、最少砝码