C++复习(十六)——方程问题

 

问题三十二:百鸡百钱问题, 一只公鸡值五钱,一只母鸡值三钱,三只雏鸡值一钱,用一百钱买一百只鸡,求所有可能情况

问题三十三:一道长阶梯,每步两阶剩一阶,每步三阶剩两阶,每步五阶剩四阶,每步六阶剩五阶,每步七阶剩零阶,求阶梯共多少阶

问题三十四:一元人民币兑换成1分,2分,5分,共有多少种不同的兑换方法

问题三十五: 四个数字为等差数列,四个数之和为26,之积为880,求这四个数

问题三十六:一个口袋中12个球,其中红球3个,白球3个,黑球6个,从中任取八个,共有多少种不同颜色搭配

问题三十七: 男人,女人,小孩共30人,男人每人花3元,女人每人花2元,小孩每人花1元,一共花50元,求所有情况

/*
问题三十二:百鸡百钱问题, 一只公鸡值五钱,一只母鸡值三钱,三只雏鸡值一钱,用一百钱买一百只鸡,求所有可能情况

分析:根据题目可以列出一道三元方程组,设公鸡x只,母鸡y只,雏鸡z只
则x小于20,y小于34,依次可以穷举试探 


问题三十三:一道长阶梯,每步两阶剩一阶,每步三阶剩两阶,每步五阶剩四阶,每步六阶剩五阶,每步七阶剩零阶,求阶梯共多少阶

分析:之前有做过类似题,简单 


问题三十四:一元人民币兑换成1分,2分,5分,共有多少种不同的兑换方法

分析:与问题三十二类似 


问题三十五: 四个数字为等差数列,四个数之和为26,之积为880,求这四个数

分析:设第一个数为i,差数为x,则四个数之和为4*i+6*x,再根据商的关系可解 


问题三十六:一个口袋中12个球,其中红球3个,白球3个,黑球6个,从中任取八个,共有多少种不同颜色搭配

分析:这个题与取球的顺序无关,需注意这一点 


问题三十七: 男人,女人,小孩共30人,男人每人花3元,女人每人花2元,小孩每人花1元,一共花50元,求所有情况

分析:简单 
*/
#include<iostream>
using namespace std;

void qiu_ji(){
	int x,y,small;
	for(x=0;x<20;x++){
		for(y=0;y<34;y++){
			if(5*x+3*y > 100)continue;
			small = 100-x*5-y*3;
			if((100-x-y) == small*3){
				cout<<"公鸡: "<<x<<" 母鸡: "<<y<<" 小鸡: "<<100-x-y<<endl; 
			}
		}
	}
}

void jie_ti(){
	int i;
	for(i=7;;i+=7){
		if(i%2 == 1 && 
		i%3 == 2 &&
		i%5 == 4 &&
		i%6 == 5){
			cout<<i<<endl;
			break;
		}else{
			continue;
		}
	}
} 

void fen_qian(){
	int five,two;
	int count = 0;
	for(five = 0;five <= 20;five++){
		for(two = 0;two <= 50;two++){
			if(five*5+two*2 > 100)break;
			//cout<<"5: "<<five<<" 2: "<<two<<" one: "<<100-five*5-two*2<<endl;
			count++;
		}
	}
	cout<<count<<endl;
} 

void chi_fan(){
	int men,women,count=0;
	for(men = 0;men<=16;men++){
		for(women = 0;women<=30-men;women++){
			if(men*3+women*2>50)break;
			if(men*3+women*2+(30-men-women)==50)count++;
		}
	}
	cout<<count<<endl;
} 

void deng_cha(){
	int i,x;
	for(i=1;;i++){
		x = 26-i*6;
		if(x%4 != 0)continue;
		x = x/4;
		if(x*(x+i)*(x+2*i)*(x+3*i)==880){
			cout<<x<<" "<<x+i<<" "<<x+2*i<<" "<<x+3*i<<endl;
			break;
		}
	}
} 

void qu_qiu(){
	int red,write,count = 0;
	for(red = 0;red<=3;red++){
		for(write = 0;write <= 3;write++){
			if(red+write < 2)continue;
			if(8-red-write <= 6){
				count++;
				cout<<"red: "<<red<<" write: "<<write<<" black: "<<8-red-write<<endl;
			}
		}
	}
	cout<<count<<endl;
} 

int main(){
	//问题三十二 
	qiu_ji();
	//问题三十三 
	jie_ti();
	//问题三十四 
	fen_qian();
	//问题三十五 
	deng_cha();
	//问题三十六 
	qu_qiu();
	//问题三十七 
	chi_fan();
	return 0;
}

       这其中有不合适或者不正确的地方欢迎指正,我的QQ号码:2867221444(乔金明),谢谢,也可以相互交流下,备注信息随意,只要能看得出是开发者或者学习者即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值