小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。
小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。
你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。
本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。
两个正整数,表示每种包装中糖的颗数(都不多于1000)
一个正整数,表示最大不能买到的糖数
import java.util.Scanner; public class Main{ static int[] v = new int[100001]; static int[] b ;//= { 3, 5 }; public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String[] sarr=scanner.nextLine().split(" "); b=new int[sarr.length]; for(int i=0;i<sarr.length;i++) { b[i]=Integer.parseInt(sarr[i]); } cal(); } static void cal() { for (int i = 0; i < b.length; i++) v[b[i]] = 1; for (int i = 1; i < v.length; i++) { for (int j = 0; j < b.length; j++) { if (i - b[j] >= 0 && v[i - b[j]] == 1) { v[i] = 1; } } } int max = 0; for (int i = 1; i < v.length; i++) { if (v[i] != 1) { max = i; } } System.out.print(max); } }
蓝桥杯——说好的进阶之买不到的数目,布布扣,bubuko.com
原文地址:http://blog.csdn.net/hymanxq/article/details/26628249