最大不能买的数

来源:互联网 发布:网络节目收拾排行榜 编辑:程序博客网 时间:2024/06/10 07:50
</pre><pre>
import java.util.Scanner;/*小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。*///分析://把能买的数记为1//如果连续能买的数大于包装最小数,最后面的数都能由包装最小数组合而成即能买//i-a就是最大不能买的数public class 买不到的数字{static final int N = 1000 * 100;static int se(int[] da, int a){int n=0;for(int i=0; i<da.length; i++){if(da[i]==1){n++;if(n>=a) return i-a;}elsen = 0;}return -1;}static void f(int a, int b){int[] da = new int[N];for(int i=0; i<=N/a; i++){for(int j=0; j<=(N-i*a)/b; j++){if(i*a + b*j < N) da[i*a+b*j] = 1;}}System.out.println(se(da, a));}public static void main(String[] args){f(3,5);f(4,7);f(10,13);f(30,41);f(257,191);}}


0 0
原创粉丝点击