php编写程序百马百担问题_利用C语言实现“百马百担”问题方法示例

本文介绍了如何利用C语言解决经典问题——百马百担。通过两重循环穷举法,找出所有可能的马匹组合,满足大马驮3担、中马驮2担、两匹小马驮1担的条件,从而求得共有多少种驮货方法。源代码展示并解析了C语言中的for循环结构。
摘要由CSDN通过智能技术生成

前言

百马百担问题,有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问共有多少种驮法?且各种驮法中大、中、小马各多少匹?

【分析】

1、定义整型变量m、n、k分别存放大马匹数、中马匹数、小马匹数;

2、定义整型变量sum存放共有几种驮法,且sum赋初值为0;

3、根据题意,大马、中马、小马共100匹;大马、中马、小马驮100担货满足如下关系:

m+n+k=100(匹)

3*m+2*n+1/2*k=100(担)

4、三个未知数,两个方程,此题有若干组解;

5、计算机求解此类问题,采用试凑法(也称穷举法)来实现,即将可能出现的各种情况一一罗列测试,判断是否是问题真正的解。此题可以采用两重循环,列举出该问题所有可能的解进行筛选。

【源程序】

#include

int main( void )

{

int m,n,k;

int sum=0;

printf("各种驮法如下: ");

for(m=1;m<=100/3;m++ )

for(n=1;n<100/2;n++)

{

k=100-m-n;

if((2*3*m+2*2*n+k)==2*100)

{

pr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值