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

Python015

鸡兔同笼的问题 c语言怎么样编写,第1张

输入说明:

输入为两个正整数,第一个为

M

的值,第二个为

N

的值,用空格分隔。

输出说明:

若有解,输出两个整数,用空格分隔,第一个代表鸡的只数,第一个代表兔子的只数;若无解,直接输出一个

0。

算法:以列举法写程序,让计算机从鸡为0开始执行计算,利用循环语句计算大量次数后,得出最终结果。

具体程序为:

#include

int

main()

{int

chicken,rabbit//鸡,兔子

int

M,N//头,脚

printf("M=,N=")

scanf("%d

%d",&M,&N)

for(chicken=0chicken<=Mchicken++)//鸡的数量从0到总头数M尝试

{if(chicken*2+rabbit*4==N)//如果总脚数与输入的总脚数相同

{printf("%d

%d",chicken,rabbit)//分别输出鸡、兔

return

0//停止程序}}//for执行完表示找不到

printf("0")return

0}

扩展资料:

鸡兔同笼问题算法有很多种,编写出的程序不尽相同。下面列举几种算法,编写程序会更为简单一些。

有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?

(1)假设全是鸡:2×35=70(只),鸡脚比总脚数少:94-70=24

(只)

兔子比鸡多的脚数:4-2=2(只),兔子的只数:24÷2=12

(只),鸡的只数:35-12=23(只)

假设全是兔子:4×35=140(只),兔子脚比总数多:140-94=46(只)

兔子比鸡多的脚数:4-2=2(只),鸡的只数:46÷2=23(只),兔子的只数:=35-23=12(只)(2)设鸡有x只,兔有y只。

解得

参考资料:鸡兔同笼(一种数学奥数题目)_百度百科

#include <stdio.h>

void main()

{    int a,b,c,d

printf("这是一个用于算鸡兔同笼的小程序\n请输入鸡兔的总数")

scanf("%d",&a)

if(a>=0)

{

printf("\n请输入鸡兔脚的总数")

scanf("%d",&b)

if(b%2==1)

printf("脚的数量出现奇数,真奇怪啊!\n")

else if(b<=a*4&&b>=a*2)

{

c=(4*a-b)/2 // 鸡的数目

d=a-c  // 兔的数目

if(c*2+d*4==b)

printf("鸡有%ld只\n兔有%ld只\n",c,d) // c和d反了

else

printf("这个真难,计算机也没法算!\n")

}

else

printf("输入鸡兔脚的数量范围不正确,正确的范围是%d--%d!\n",a*2,a*4)

}

else

printf("数量不能为负!\n")

}

#include <stdio.h>

#include <windows.h>

main()

{ unsigned long int a,b,c,d

printf("这是一个用于算鸡兔同笼的小程序(仅能输入整数,使用回车键切换)\n请输入鸡兔的总数")

scanf("%d",&a)

printf("\n请输入鸡兔脚的总数")

scanf("%d",&b)

c=(4*a-b)/2// 鸡的数目

d=a-c// 兔的数目

if(c*2+d*4==b) printf("鸡有%ld只\n兔有%ld只",c,d)// c和d反了

else printf("同学,我看你给的数有错吧!")

Sleep(100000000)。

//鸡兔同笼

#include<stdio.h>

voidmain()

{

inttou=30,jiao=100//预置头数、脚数

printf("tu=%d\n",jiao/2-tou)//得出兔数

穿盯扁故壮嘎憋霜铂睛printf("ji=%d\n",2*tou-jiao/2)//鸡数

}

EOF是文件末尾end of file的意思,也就是这个程序可以输入多组测试数据,如果默认有解那么把后面的if和else改成一句printf就可以了。