穷举法作业

阿凡提的难题
题目描述
阿凡提去集市上买餐具,财主正好在卖餐具,所以准备为难一下阿凡提;财主的餐具有2种:
大碗和小碗,财主和阿凡提说,你买我的碗,要花光你带的钱,而且,两种碗都要买,买的
两种碗的数量都得是偶数,请你编程帮助阿凡提计算,可以有哪些购买的方案呢?
输入
三个整数,分别代表了阿凡提带的钱的数量,大碗的价格,小碗的价格!
输出
所有的购买方案,一行一个方案,先输出大碗的采购只数,再输出小碗的采购只数!
样例
输入
100 20 10
输出
2 6
4 2

#include<iostream>
using namespace std;
int main()
{
	int n,a,b;;
	cin>>n>>a>>b;
	for(int i = 1;i<=(n-b)/a;i++)
	{
		int j = (n-i*a)/b;
		if(i*a+j*b == n&&j%2 == 0&&i%2==0)
		{
			cout<<i<<" "<<j<<endl;
		}
	}
	
	return 0;

买公园门票
某公园门票价格为:成人票8元/张,儿童票3元/张;某旅游团来公园游玩,该团内有
成人和儿童(成人和儿童都有),共花了40元买门票,请你分别计算出成人和儿童可
能的人数,按照成人从少到多,儿童从多到少的规律数出结果。
输出
若干行,每行2个整数用空格隔开,分别代表成人和儿童可能的人数(成
人从少到多,儿童从多到少)

#include<iostream>
using namespace std;
int main()
{
	for(int i = 1;i<=(40-3)/8;i++)
	{
		int j = (40-i*8)/3;
		if(i*8+j*3 == 40&&(40-i*8)%3==0&&(40-j*3)%8 ==0)
		{
			cout<<i<<" "<<j;
		}
	}
	return 0;
}

买小猫小狗
题目描述
某动物饲养中心用X元专款购买小狗(每只A元)和小猫(每只B元)两种小动物。
要求专款专用,(至少猫狗各一),正好用完。请求出方案的总数。如没有请输出0。
输入
输入一行,只有三个整数.分别为X,A,B. ( 100 <
X < 32768; 1 <= A, B <= 100 )
输出
输出只有一行(这意味着末尾有一个回车符号),
包括1个整数。
样例
输入 1700 31

#include<iostream>
using namespace std;
int main()
{
	int x,a,b;
	cin>>x>>a>>b;
	int cnt = 0;
	for(int i = 1;i<=(x-b)/a;i++)
	{
		int j = (x-i*a)/b;
		if(i*a+j*b == x) 
		{
			cnt++;
		}
	}
	cout<<cnt;
	return 0;

开学大采购?
题目描述
新学期开始了,学校计划采购一批新的篮球和排球用来上体育课。学校共有n元经费,咨询体育
用品店得知篮球x元/个,排球y元/个,现要求篮球和排球都至少采购1个,n元经费全部用完,且
篮球和排球的总数要超过50个,请问有哪些采购方案?(按照篮球从少到多,排球从多到少输
出所有可行的方案)
输入
三个整数,n、x、y用空格隔开分别代表
总经费、篮球单价、排球单价
输出
所有可行的采购方案,每个组方案有2个
整数用空格隔开,第一个整数代表篮球
的采购个数,第二个整数代表排球的采
购个数
输入复制
1000 25 15
输出复制
1 65
4 60
7 55
10 50
13 45
16 40
19 35
22 30

​
#include<iostream>
using namespace std;
int main()
{
    int n,x,y;
    cin>>n>>x>>y;
    for(int i = 1;i<=(n-y)/x;i++)
    {
    	int j = (n-i*x)/y;
    	if(i*x+y*j == 0&&i+j > 50)
    	{
    		cout<<i<<" "<<j<<endl;
    	}
    }

​

恐龙园买玩具
题目描述
小明暑假来到恐龙园游玩,在恐龙园的礼物店里,有一些形形色色的小恐龙玩偶,小明想购买其中霸王
龙和三角龙玩偶送给自己的5位好朋友。店员告诉小明,霸王龙玩偶一只需要x元,三角龙玩偶一只需要y
元。 小明有n元,希望两种恐龙都能购买,购买的霸王龙的数量>=三角龙的数量,购买的总数要在5个
或者5个以上(这样才够分),而且不能有钱剩下。
请你编程帮助小明输出所有可能的购买方案,每组方案占1行,先输出霸王龙的数量,再输出三角龙的数
量(霸王龙的数量从少到多,三角龙的数量从多到少)
输入
三个整数n x y,分别代表总金额、霸王
龙的单价、三角龙的单价
输出
所有满足条件的购买方案,每组购买方
案占1行,用空格隔开2个数分别代表霸
王龙的数量和三角龙的数量。
样例
输入复制
100 10 5
输出复制
7 6
8 4
9 2

#include<iostream>
using namespace std;
int main()
{
	int x,a,b;
	cin>>x>>a>>b;
	for(int i = 5;i<=(x-b)/a;i++)
	{
		int j = (x-i*a)/b;
		if(i*a+j*b == x&&i >= j) 
		{
			cout<<i<<" "<<j<<endl;
		}
	}
	return 0;

 买糕点

题目描述
妈妈给了小明n元,给小明同学去面包店买糕点吃,小明非常喜欢吃切片面包和蛋挞,今天切片面包x
元一件(一包),蛋挞y元一件(一盒);小明想花光n元买这两样糕点,而且每样都至少买一件,请
问,小明可以采购的方案中,能够买最多面包的方案是什么?
比如,100元,面包15元/件,蛋挞10元/件,那么可行的购买方案有:
2件面包 7件蛋挞
4件面包 4件蛋挞
6件面包 1件蛋挞
而上述方案中,面包最多的购买方案是:6件面包 1件蛋挞,因此输出:6 1
输入
三个变量:n x y,分别代表总金额,面
包的单价和蛋挞的单价!
输出
两个数,分别代表采购方案中能够买到
最多面包的件数和蛋挞的件数!
输入复制
100 15 10
输出复制
6 1

#include<iostream>
#include<iostream>
using namespace std;
int main()
{
	int x,a,b;
	cin>>x>>a>>b;
	for(int i = 1;i<=(x-b)/a;i++)
	{
		int j = (x-i*a)/b;
		if(i*a+j*b == x&&i > j) 
		{
			cout<<i<<" "<<j<<endl;
		}
	}
	return 0;

植树的人数
题目描述
某班学生分2组参加植树活动,甲组有17人,乙组有25人,后来由于需要,从甲组抽调了
部分学生去乙组,结果乙组的人数是甲组的2倍,请问从甲组抽调了多少人去乙组?
输入

输出
甲组抽调去乙组的人数

#include<iostream>
using namespace std;
int main()
{
    int z;
    for(int i = 1;i<=(25+(17-z))/25;i++)
    {
    	if((25+z)%17 == 0)
    	{
    		cout<<z;
    	}
    }
	return 0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值