分酒问题 求最大不能组合出的数字


题:
小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。
小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。
你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。
本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。
输入:
两个正整数,表示每种包装中糖的颗数(都不多于1000)

要求输出:
一个正整数,表示最大不能买到的糖数

例如:
用户输入:
4 7
程序应该输出:
17

再例如:
用户输入:
3 5
程序应该输出:
7

源码SweetGame.java


import java.util.Scanner;

public class SweetGame {
    public static int xymod(int a, int b) {
        if (a<b) {
            int temp;
            temp = a;
            a = b;
            b = temp;
        }
        if (0==b) {
            return a;
        }
        return xymod(a-b, b);
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Pls input 2 nums");
        int a = sc.nextInt();
        int b = sc.nextInt();
        sc.close();
        if (xymod(a, b)!=1 || a<2 || b<2) {
            System.out.println("No solution !");
        }
        else {
            System.out.println("Max num is "+(a*b-a-b));
        }
    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注