c鸡兔同笼程序代码数组解法(算法与程序设计鸡兔同笼代码)

http://www.itjxue.com  2023-03-17 01:11  来源:未知  点击次数: 

鸡兔同笼的问题 c语言怎么样编写

1、编写思路如下:

假设有x只鸡,y只兔,两者一共有m只头,n只脚,则有:

x + y = m ; 2 * x + 4 * y = n ;

即得到关系式,x + 2y =n/2 , x + y = m , y = n/2 - m , x = 2 * m - n/2。

2、代码及注释如下:

#includestdio.h

main ( )

{

int a, b ;

printf("请分别输入动物头与脚的数目:\n");

scanf("%d%d",a,b); //头数为a, 脚数目为b;

printf("一共有%d只鸡,%d只兔子\n",b/2-a,2 * a - b/2);

}

扩展资料:

常见鸡兔同笼类型问题:

1、班主任张老师带五年级(2)班50名同学栽树,张老师栽5棵,男生每人栽3棵,女生每人栽2棵,总共栽树120棵,问几名男生,几名女生?

2、大油瓶每瓶装4千克,小油瓶2瓶装1千克,现有100千克油装了共60个瓶子。问大小油瓶各多少个?

3、小毛参加数学竞赛,共做20道题,得67分,已知做对一道得5分,不做得0分,错一题扣1分,又知道他做错的题和没做的同样多。问小毛做对几道题?

4、有蜘蛛,蜻蜓,蝉三种动物共18只,共有腿118条,翅膀20对(蜘蛛8条腿;蜻蜓6条腿,2对翅膀;蝉6条腿,1对翅膀),三种动物各几只?

参考资料来源:百度百科-鸡兔同笼问题

想用c语言解答鸡兔同笼,怎么做?

鸡兔同笼问题,归根结底是一个数学问题。用C语言处理数学问题,无外乎两种方式。

假定头的数量为A, 脚的数量为B。

一、暴力求解:

//枚举鸡的数量

int flag = 0;

for(i = 0; i = A; i++) {

j = A - i;

if (i * 2 + j * 4 == B) {

flag = 1;

printf("ans is: %d, %d\n", i, j);

break;

}

}

if (flag == 0) {

puts("No answer!");

}

二、建立数学模型求解

鸡兔同笼问题是个二元一次方程组问题。

X + Y = A

2X + 4Y = B

X = (4A - B) / 2

Y = (B - 2A) / 2

转换成代码:

if ( (4 * A - B) % 2 == 0 (B - 2 * A) % 2 == 0) {

printf("ans is: %d, %d\n", (4 * A - B) / 2 , (B - 2 * A) / 2);

} else {

puts("No answer!");

}

c语言算法,鸡兔同笼

已知鸡和兔的总数量为n,总腿数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解则输出No answer。

输入:

两个整数b和m,如上所述。

输出:

鸡的数目和兔的数目。

我们假设a = 鸡只数,b = 兔只数(兔的脚数×总只数-总脚数)÷(兔的脚数-鸡的脚数)=鸡的只数,a = ( 4*n - m )/2。

总只数-鸡的只数=兔的只数,b = n - a。

具体代码:

#include "stdio.h"

int main() {

int a,b,n, m;

// a鸡的数量

// b兔的数量

// n鸡兔总数

// m总脚数

scanf("%d %d", n,m);

a = (4 * n - m) / 2;//算出鸡的数量

b = n - a;//算出兔的数量

if (a = 0 || b = 0) {

//结果小于等于0,答案不成立,无解

? printf("No answer");

} else {

//结果大于0

? printf("%d %d", a, b);

}

return 0;

?}

扩展资料:

鸡兔同笼解题思路:如果先假设它们全是鸡,于是根据鸡兔的总数就可以算出在假设下共有几只脚,把这样得到的脚数与题中给出的脚数相比较,看看差多少,每差2只脚就说明有1只兔,将所差的脚数除以2,就可以算出共有多少只兔。

概括起来,解鸡兔同笼题的基本关系式是:兔数=(实际脚数-每只鸡脚数×鸡兔总数)÷(每只兔子脚数-每只鸡脚数)。类似地,也可以假设全是兔子。

(责任编辑:IT教学网)

更多