题目描述
输入描述:
输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果
输出描述:
输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1
输入
20
输出
3
思路:首先对苹果进行判断是不是6或者8的整数倍,如果是则输入其中的最小数,如果不是,首先对苹果数量进行判断,苹果数量肯定会在n/8到n/6之间,然后对这两个数进行循环,逐个搭配,直接上代码!
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int> result;
int n;
int tmp;
cin>>n;
int tmp1,tmp2;
if((!n%6) && (!n%8))
cout<<((n/6)<(n/8)?n/6:n/8)<<endl;
if(!n%6)
cout<<n/6<<endl;
if(!n%8)
cout<<n/8<<endl;
int i = n/8;
int cnt = n/6;
for(;i<=cnt;i++)
{
for(int j=0;j<=i;j++)
{
if(j*8+((i-j)*6)==n)
result.push_back(i);
}
}
sort(result.begin(),result.end());
if(!result.empty())
cout<<*result.begin()<<endl;
else cout<<-1<<endl;
return 0;
}