• 买不到的数目


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

    第一个代码:(正确%50) 

    //不计算简单做标记
     
    #include<iostream>
    #include<cstring>
    using namespace std;
    const int maxn=1000010;
    int book[maxn];
    int m,n;
    void gcd(int x){
        if(x>1000) return;
        if(book[x]) return; 
        book[x]=1;
        x+=m;
        gcd(x);
        x-=m;
        x+=n;
        gcd(x);
    } 
    int main()
    {
       while(cin>>m>>n){
       memset(book,0,sizeof(book));
       gcd(0);
       book[0]=0;
    //   cout<<"hello"<<endl;
       for(int i=1000;i>=1;i--)
       if(!book[i]){
           if(i==0) cout<<"-1"<<endl;
        else cout<<i<<endl;
        break;}
    }
    
    }
    View Code

    通过累加填数这个过程我不好把控,我觉得就此鄙弃。。。

    分析:联想筛选算法  直接标记(简单可控)

    复习代码:

    //不计算简单做标记
    #include<iostream>
    #include<cstring>
    using namespace std;
    const int maxn=1000010;
    int book[maxn];
    int m,n,i,j;
    int test[2];
    int main()
    {
       while(cin>>m>>n){
           test[0]=m;
           test[1]=n;
       memset(book,0,sizeof(book));
       book[m]=1;
       book[n]=1;
       for(i=0;i<2;i++){
           for(j=test[i]+1;j<=maxn;j++){
               if(book[j-test[i]]) book[j]=1;
           }
       }
       for(i=maxn;i>=1;i--){
           if(!book[i]) {
               cout<<i<<endl;
               break;
           }
       }
    }
    return 0;
    }
    View Code
  • 相关阅读:
    360抢票王验证码自动识别真的那么牛吗?
    wpf 的各个template
    HTML/CSS实现的一个列表页
    泛型约束和利用反射修改对象属性的值
    KindEditor富文本编辑器, 从客户端中检测到有潜在危险的 Request.Form 值
    检查对象是否为NULL或者为Empty
    【笔记】WPF实现ViewPager引导界面效果及问题汇总
    【笔记】WPF之模板控件应用
    【笔记】W3C CSS关键属性
    【转】Web标准中的常见问题
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10557345.html
Copyright © 2020-2023  润新知