输入为两个正整数,第一个为
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>int main()
{
int a,b,M,N
printf("请输入鸡兔的总头数\n")
scanf_s("%d",&a)
printf("请输入鸡兔的总腿数\n")
scanf_s("%d",&b)
scanf_s("%d",&M)
M=(2*a)-(b/2)
printf("鸡的数目为%d只")
scanf_s("%d",&N)
N=(b/2)-(a)
printf("兔的数目为%d只")
return 0
}
我目前是C语言的新手,目前只会做这一类。如果用的是VS(visual studio)编程的话,scanf后必须加_s,这是VS独有的,其他的编程软件随意。