• 买糖果-蓝桥杯


    标题:买不到的数目

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

    输入输出要求

    输入:
    两个正整数,表示每种包装中糖的颗数(都不多于1000)
    要求输出:
    一个正整数,表示最大不能买到的糖数
    不需要考虑无解的情况

    举例

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

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

    实现代码

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    int m,n;
    int main()
    {
    	cin >> m >> n;
    	int i;//i个m
    	int j;//j个n
    	int sum;
    	vector<int>::iterator begin;
    	vector<int> poss;
    	for(i = 0;i <= 200;i++)
    	{
    		for(j = 0;j <= 200;j++)
    		{
    			sum = i * m + j * n;
    			//如果没找到
    			if( find(poss.begin(),poss.end(),sum) == poss.end() ) 
    			{
    				poss.push_back(sum);
    			}
    		}
    	}
    	sort( poss.begin(),poss.end() );
    	begin = poss.begin();
    
    	int q = *((poss.end())-1);
    	int result = 0;
    	for(i = m > n?m : n;i <= 1000;i++)
    	{
    		if( find(poss.begin(),poss.end(),i) == poss.end() ) 
    		{
    			result = i;
    		}
    	}
    	cout << result << endl;
    	return 0;
    }
    
  • 相关阅读:
    oracle实现自增id
    一些.NET 项目中经常使用的类库
    文件读取是判断是否读取到末尾
    文件操作
    第一个html文件
    HTML标签(持续更新)
    配置tomcat
    判断一个String中是否有指定字符或字符串
    去掉字符串中的某个字符
    把一个activity作为弹窗
  • 原文地址:https://www.cnblogs.com/maskerk/p/7348866.html
Copyright © 2020-2023  润新知