百马百担c语言编程
⑴ c语言程序来编写关于百马百担问题,最好简单点
这里的flag不是函数啦,是一个变量。。 如果你是在自学或者暑假复习的话,建议你还是把前面的给弄清楚来吧解释也没用的, 如果是临时做作业或者干什么的,追问我 本文转载自 http://www.ncecit.com
⑵ 百马百担问题,有100匹马
#include<stdio.h> void main() { int i, j; for (i=0;i<34;i++)//大马 for (j=0;j<(100-i*3)/2+1;j++)//中马 if ((100-i-j)%2==0 && 3*i+2*j+(100-i-j)/2 ==100) printf("%d\t%d\t%d\n",i,j,100-i-j); } 运行列出的几组数即是可能的组合。
⑶ 百马百担问题。有100匹马驮100担货,大马驮3担,中马驮2担,两个小马驮1担。问有大中小马各多少
#include <stdio.h>
void main()
{
int big,mid,small,sum=0;
for(big=0;big<33;big++)
for(small=0;small<100;small+=2)
for(mid=0;mid<50;mid++)
{
if(3*big+2*mid+small/2==100&&big+mid+small==100)
{
printf("big:%d mid:%d small:%d ",big,mid,small);
sum++;
}
}
printf("%d ",sum);
}
(3)百马百担c语言编程扩展阅读:
假设大马有X匹,中马有Y匹。因为有100匹马,所以有(100-X-Y)匹。又因为大马驮3担,中马驮2担,两个小马驮1担,且100匹马驮100担货,所以有二元一次方程等式为3X+2Y+(100-X-Y)/2=100,化简可得Y=(100-5X)/3。
大马有X匹,中马有(100-5X)/3匹,小马有(200+2X)/3匹。因为大中小马为整数,所以有:
1、大马有2匹,中马有30匹,小马有68匹。
2、大马有5匹,中马有25匹,小马有70匹。
3、大马有8匹,中马有20匹,小马有72匹。
4、大马有11匹,中马有15匹,小马有74匹。
5、大马有14匹,中马有10匹,小马有76匹。
6、大马有17匹,中马有5匹,小马有78匹。
7、大马有20匹,中马有0匹,小马有80匹。
⑷ c#百马百担问题,有100匹马,驮100担货,大马驮3担,中马驮2担,两匹
这就是一个基本的3重循环题目:
白马驮百货
⑸ C语言 百马百担的问题!
求的是马的个数,所以没有歧义
#include <stdio.h>
int main(void){
int i,j,k;
for(i=100/3;i>0;i--)
for(j=100/2;j>0;j--)
for(k=100;k>0;k-=2){
if(((i+j+k)==100)&&((3*i+2*j+k/2 )== 100))
printf("%d ,%d ,%d\n", i,j,k);
}
return 0;
}
楼上的说我刚才逻辑错误,其实不然,因为34*3>100所以如果取上值的话,是超过100的,所以直接取下值。
你说逻辑,那我们从逻辑上来论证:
设r = [a/b]+1, 其中a为担总数, b为每马担数
则当[a/b] = a/b时, 有 r = a/b + 1, r> a/b
当[a/b] < a/b 时, 因为 0 < a/b - [a/b] < 1, 有 a/b < [a/b] + 1 = r, 即 r > a/b
综上: r > a/b
又:a/b * b = a, 则 必有 r * b > a
根据提设条件对于任意的大马个数x, 有 x*b <= a
因此 r不属于x存在的集合,不在取值范围之列。
仔细思考再下结论
⑹ 百马百担的原理简介
数学上有百马百担,有一百匹马,一百担货,大马驮三担,中马驮二担,两匹小马驮一担,问大中小马各多少匹?
试编程求此数学问题。(用C语言编程)
设r = [a/b]+1, 其中a为担总数, b为每马担数
则当[a/b] = a/b时, 有 r = a/b + 1, r> a/b
当[a/b] < a/b 时, 因为 0 < a/b - [a/b] < 1, 有 a/b < [a/b] + 1 = r, 即 r > a/b
综上: r > a/b
又:a/b * b = a, 则 必有 r * b > a
根据提设条件对于任意的大马个数x, 有 x*b <= a
因此 r不属于x存在的集合,不在取值范围之列。
用for循环列举,并用if语句判断符合题意的结果
⑺ 我在用c语言编百马百担的问题时 不知道错哪里了。这是我编的 速求!!!
这是我以前写的一个百钱百鸡的问题,你这个懒得写了应该是一样的,你自己改一下吧
//中国古代数学家张丘建在他的《算经》中提出了着名的“百钱买百鸡问题”:鸡翁一,值钱五,
//鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
#include<iostream>
#define xh "*******************************************"
using namespace std;
int main()
{
int jw=0,jm=0,jc=0,jcs=0;
for (int i=0;i<20;i++)
{
for (int j=0;j<30;j++)
{
jw=i*5;
jm=j*3;
jc=100-jm-jw;
jcs=jc*3;
if (jw+jm+jc==100&&i+j+jcs==100)
{
cout<<"鸡翁数:"<<i<<"\t鸡母数:"<<j<<"\t鸡雏数:"<<jcs<<endl;
cout<<i<<"*5="<<i*5<<"\t "<<j<<"*3="<<j*3<<"\t "
<<jcs<<"*1/3="<<jcs/3<<endl;
cout<<xh<<endl;
}
}
}
return 0;
}
⑻ 改正一下C语言百马百担问题
#include <stdio.h>
main()
{
int m,n,k;
int sum=0;
printf("各种驮法如下:\n");
for(m=1;m<=100;m++)
for(n=1;n<=100-m;n++)
{
k=100-m-n;
if((3*m+2*n+0.5*k)==100)
{ printf("大马%3d匹; 中马%3d匹; 小马%3d匹.\n",m,n,k);
sum++;
}
}
printf("共有 %d 种驮法.\n",sum);
}
⑼ 100匹马驼100担货,大马可以驮3担,中马可以驮2担,2匹小马共驮1担,问有多少种驮法C语言
#include<stdio.h>
voidmain(){
inta,b,c,n=0;
for(a=0;a<=32;a++)
for(b=0;b<=50;b++)
for(c=0;c<=100;c+=2)
if(a+b+c==100&&a*3+b*2+c/2==100)
{
printf("大马:%d,中马:%d,小马:%d ",a,b,c);
n++;
}
printf("共有%d种驮法",n);
}