本题其实是一个数学题,但是用代码也可以暴力出来,所以尝试一下暴力方式

裴蜀定理

理念:两个数只要互斥,也就是没有公约数,就一定有解
p 和 q的最大公约数是d
那么 ap + bq = d

打表找规律

根据上面定理,我们的暴力目的就比较明确了,我们就是要暴力出
dfs暴力区间的所有数
筛选出两个数的所有倍数,不是两个数的倍数的那个数就是答案。

代码

  1. package lanqiaobei.dp;
  2. import java.util.Scanner;
  3. public class NoNum {
  4. static boolean dfs(int i, int num1, int num2) {
  5. if (i == 0) return true;
  6. if (i >= num1 && dfs(i - num1, num1, num2) ) return true;
  7. if (i >= num2 && dfs(i- num2, num1, num2) ) return true;
  8. return false;
  9. }
  10. public static void main(String[] args) {
  11. Scanner sc = new Scanner(System.in);
  12. int n = sc.nextInt();
  13. int m = sc.nextInt();
  14. int res = 0;
  15. for (int i = 1; i <= 1000; i++)
  16. {
  17. if (dfs(i, n, m) == false) res = i;
  18. }
  19. System.out.println(res);
  20. }
  21. }

注意
&& 全真才真,一假则假
i >= num1 非常重要,如果去掉就会死循环,因为会不断减,换个角度,如果这个数小于num1,说明它就是我们要找的数。