循环----穷举法(c++)

买公园门票

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

输入无

输出若干行,每行2个整数用空格隔开,分别代表成人和儿童可能的人数(成人从少到多,儿童从多到少)

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

买小猫小狗

题目描述

某动物饲养中心用X元专款购买小狗(每只A元)和小猫(每只B元)两种小动物。要求专款专用,(至少猫狗各一),正好用完。请求出方案的总数。如没有请输出0。

输入

输入一行,只有三个整数.分别为X,A,B. ( 100 < X < 32768; 1 <= A,B <= 100 )

输出

输出只有一行(这意味着末尾有一个回车符号),包括1个整数。

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

阿凡提的难题

题目描述

阿凡提去集市上买餐具,财主正好在卖餐具,所以准备为难一下阿凡提;财主的餐具有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 = 2;i<=(n-b*2)/a;i++)
	{
		int j = (n-i*a)/b;
		if(j*b+i*a==n&&j%2==0&&i%2==0)
		{
			cout<<i<<" "<<j<<endl;
		}
	}
	return 0;
}

植树的人数

题目描述

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

输入

输出

甲组抽调去乙组的人数

#include <iostream>
using namespace std;
int main()
{
	int a = 17;
	int b = 25;
	int i = 1;
	while(i<17)
	{
		int q = a-i;
		int v = b+i;
		if(2*q==v)
		{
			break;
		}
		i++;
	}
	cout<<i;
	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 x,a,b;
	cin>>x>>a>>b;
	for(int i = 1;i<(x-b)/a;i++)
	{
		int j = 1;
		j = (x-i*a)/b;
		if(j*b+i*a==x&&j+i>50)
		{
			cout<<i<<" "<<j<<endl;
		}
	}
	return 0;
}

恐龙园买玩具

题目描述

小明暑假来到恐龙园游玩,在恐龙园的礼物店里,有一些形形色色的小恐龙玩偶,小明想购买其中霸王龙和三角龙玩偶送给自己的5位好朋友。店员告诉小明,霸王龙玩偶一只需要x元,三角龙玩偶一只需要y元。小明有n元,希望两种恐龙都能购买,购买的霸王龙的数量>=三角龙的数量,购买的总数要在5个或者5个以上(这样才够分),而且不能有钱剩下。请你编程帮助小明输出所有可能的购买方案,每组方案占1行,先输出霸王龙的数量,再输出三角龙的数量(霸王龙的数量从少到多,三角龙的数量从多到少)

输入

三个整数n x y,分别代表总金额、霸王龙的单价、三角龙的单价

输出

所有满足条件的购买方案,每组购买方案占1行,用空格隔开2个数分别代表霸王龙的数量和三角龙的数量。

#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 = 1;
		j = (x-i*a)/b;
		if(j*b+i*a==x&&j+i>=5&&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,分别代表总金额,面包的单价和蛋挞的单价!

输出

两个数,分别代表采购方案中能够买到最多面包的件数和蛋挞的件数!

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值