#include<stdioh>
void main()
{
int a,b,c;
for(a=0;a<20;a++) //公鸡可能的只数
for(b=0;b<(100-5a)/3;b++) //母鸡可能的只数
{ c=100-a-b; //总数为100时,小鸡的只数
if(c%3==0 && a5+b3+c/3==100) //若小鸡只数是3的倍数,且总价为100
printf("a=%d\tb=%d\tc=%d\n",a,b,c);
}
getch();
return 0;
}
百钱其实可以招鸡,不一定要买鸡。
看你是真心需要答案我就写一个,不过我习惯用C#,语法相近,无非就是一个一元一次方程多个解,公鸡母鸡都是5元一只,你就假设公鸡加母鸡X只,小鸡Y只。方程就是:
5x+y/3=100
百钱买百鸡意思就是保证XY都是整数就好了,对编程来讲就是一个从1到100遍历X,判断Y是不是真的是整数的过程。可能数学老师神话了这一个方程,但是编程思想就是这么一个简单的原理:
private void button1_Click(object sender, EventArgs e){
//5x+y/3=100;
int count = 0;
string y = "";
string result="";
Regex reg = new Regex(@"^((\d|[123456789]\d)|100)$");
for (int x=1;x<100;x++)
{
y = ((100 - 5 x) 3)ToString();
if (regIsMatch(y)&&(x+ConvertToInt32(y))==100)
{
count++;
result += "解" + countToString() + ": x" + countToString() + "=" + xToString() + " y" + countToString() + " = " + yToString() + "\r\n";
}
}
result = (result == "") "无解" : result;
MessageBoxShow(result);
}
结果你看一下,价格肯定是你乱给的,无解:
公鸡母鸡都改成3块之后
他就有解了,而且,我记得好像公鸡母鸡价格不一样
#include <stdlibh>
#include <stdioh>
int main()
{
int a,b,c,num,mon,i;
//a,b分别为公鸡母鸡数量,c为雏鸡数量除以3
printf("本程序用来解决百钱买百鸡的问题。\n");
system("pause");
for(c=0;c<=33;c++)
{
num=100-3c;mon=100-c;
if((mon-3num)%2==0)
{
a=(mon-3num)/2;
if(a<0||a>15) continue;
b=num-a;
if(b<0||b>25) continue;
//通过两个条件分别判断a和b的值是否在指定区间(否则会产生负值和很大的值)
printf("分配:公鸡%d只,母鸡%d只,雏鸡%d
只,为百钱买百鸡的答案。\n",a,b,3c);
}
}
system("PAUSE");
return 0;
}
有3种方案。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普逊和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。
为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。
C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
#include<stdioh>
int main()
{
float x,g,m;
int i=0;
for(m=1;m<101;m++)
{for(g=1;g<34;g++)
{x=100-m-g;
if(3g+m+(x/3)==100)
{printf("小鸡=%0f公鸡=%0f母鸡=%0f\n",x,g,m);
i++;}}}
printf("共有=%d种方案",i);
return 0;
}
试试~看看是不是你想要的
1、百钱买百鸡问题——一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。
这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组:
这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z的取值范围:
1) x的取值范围为1~20
2) y的取值范围为1~33
3) z的取值范围为3~99,步长为3
对于这个问题可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。
初始算法
1.初始化为1;
2.计算x循环,找到公鸡的只数;
3.计算y循环,找到母鸡的只数;
4.计算z循环,找到小鸡的只数;
5.结束,程序输出结果后退出。
算法细化
算法的步骤1实际上是分散在程序之中的,由于用的是for循环,很方便的初始条件放到了表达式之中了。
步骤2和3是按照步长1去寻找公鸡和母鸡的个数。
步骤4的细化
4.1 z=1
4.2 是否满足百钱,百鸡
4.2.1 满足,输出最终百钱买到的百鸡的结果
4.2.2 不满足,不做处理
4.3 变量增加,这里注意步长为3
2、程序代码如下
#include "stdioh"main()
{
int x,y,z;
for(x=1;x<=20;x++)
for(y=1;y<=33;y++)
for(z=3;z<=99;z+=3)
{
if((5x+3y+z/3==100)&&(x+y+z==100))/是否满足百钱和百鸡的条件/ printf("cock=%d,hen=%d,chicken=%d\n",x,y,z);
}
}
程序运行结果如下:
cock=4,hen=8,chicken=78
cock=8,hen=11,chicken=81
cock=12,hen=4,chicken=84
#include <stdioh>。
void main()。
{
int mj,gj,xj,n=0;
printf(" 百元买百鸡题求解方案\n") ;
printf(" ----------------------\n") ;
printf("\t母鸡\t公鸡\t小鸡\n") ;
for(mj=0;mj<=100;mj++)
for(gj=0;gj<=100;gj++)
{
xj=100-mj-gj;
if(xj05+mj3+gj2==100)
扩展资料:
C的程序比其他用别的语言写的程序,实现相同的功能,它用的代码行数更少,而它带来的运行效率更快。有时候,你的程序所需要的速度,只有C语言能做到。
学习过C语言,就能学习现在任何的高级编程语言。因为所有的高级语言都是以C语言为基础的(像JAVA,C++,C#等等)。
因为C语言已经存在很多年了,它有广泛的使用团体并且有大量的现成代码可以利用。这就使能在过去程序的基础上,快速和高效的编写新的算法和函数。
i 要从0开始
Private Sub Command1_Click()
For i = 0 To 20
For j = 0 To 33
z = 100 - j - i
If 5 i + 3 j + 1 / 3 z = 100 Then Print i, j, z
Next j
Next i
End Sub
以上就是关于C语言 百钱买百鸡全部的内容,包括:C语言 百钱买百鸡、用VB编写一个“百钱买百鸡”程序、c 语言百钱买百鸡 一 次 循环 解决 求思路等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)