8.21滴滴笔试的两道编程题
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main39 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); List<String> res = new ArrayList<>(); for (char a = '1'; a <= '9'; a++) { for (char b = '0'; b <= '9'; b++) { for (char c = '0'; c <= '9'; c++) { if (a != b && a != c && b != c) { int abc = (a - '0') * 100 + (b - '0') * 10 + (c - '0'); int acc = (a - '0') * 100 + (c - '0') * 10 + (c - '0'); if ((abc + acc) == n){ res.add(abc + " " + acc); } } } } } System.out.println(res.size()); res.forEach(s -> System.out.println(s)); } }
import java.util.Scanner; public class Main40 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); if (n == 1) { System.out.println(1); return; } long[] array = new long[n * n]; array[0] = array[1] = 1L; for (int i = 2; i < array.length; i++) { array[i] = array[i - 2] + array[i - 1]; } long[][] res = new long[n][n]; int index = n * n - 1; for (int i = 0; i <= n / 2; i++) { for (int top = i; top < n - i; top++) {//上 res[i][top] = array[index--]; } for (int right = i + 1; right < n - i; right++) {//右 res[right][n - i - 1] = array[index--]; } for (int bottom = n - i - 2; bottom >= i; bottom--) {//下 res[n - i - 1][bottom] = array[index--]; } for (int left = n - i - 2; left >= i + 1; left--) {//左 res[left][i] = array[index--]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (j != n - 1){ System.out.print(res[i][j] + " "); }else { System.out.println(res[i][j]); } } } } }
比较简单,大佬就别看了!
#笔试题目##滴滴#