赞
踩
目录
alter 是用来操作表字段的。
题目说了保证所有操作完成,回滚就所有操作取消,那就是事务的原子性。
按照这个写会超内存,看了题解后发现得找规律。
- import java.util.Scanner;
-
- // 注意类名必须为 Main, 不要有任何 package xxx 信息
- public class Main {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- // 注意 hasNext 和 hasNextLine 的区别
- while (in.hasNextInt()) { // 注意 while 处理多个 case
- int n = in.nextInt();
- int m = 2 * n - 1;
- int[][] arr = new int[n][m];
- // 初始化
- for (int i = 0; i < n; i++) {
- arr[i][0] = 1;
- arr[i][2 * i] = 1;
- for (int j = 1; j < 2 * i; j++) {
- if (j == 1) {
- arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
- } else {
- arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1] + arr[i - 1][j - 2];
- }
- }
- }
- // 遍历第 n 行,看看是否有偶数
- int j = 0;
- for (; j < m; j++) {
- if (arr[n - 1][j] % 2 == 0) {
- System.out.println(j + 1);
- break;
- }
- }
- // 遍历完了都没找到偶数
- if (j == m) {
- System.out.println(-1);
- }
- }
- }
- }
如图,从第三行开始才会有偶数,且是 2 3 2 4循环。
代码实现:
- import java.util.Scanner;
-
- // 注意类名必须为 Main, 不要有任何 package xxx 信息
- public class Main {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- // 注意 hasNext 和 hasNextLine 的区别
- while (in.hasNextInt()) { // 注意 while 处理多个 case
- int n = in.nextInt();
- if (n < 3) {
- System.out.println(-1);
- } else {
- n -= 2;
- if (n % 4 == 1 || n % 4 == 3) {
- System.out.println(2);
- } else if (n % 4 == 2) {
- System.out.println(3);
- } else if (n % 4 == 0) {
- System.out.println(4);
- }
- }
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。