鸡兔同笼是中国古代的数学名题之一。 大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的: 今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?这四句话的意思是: 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔? 本题要求编写函数,利用指针做参数求解鸡兔同笼问题。头和脚的数目从键盘输入。
函数接口定义:void fun ( int h,int f,int *p,int *q );
其中h和f由主函数传入,代表头和脚的数目, (假定输入数据都合理)。 函数fun可求出鸡和兔的数目,并在主函数输出。
裁判测试程序样例:在这里给出函数被调用进行测试的例子。例如: #include输入样例:void fun ( int h,int f,int *p,int *q ); int main() { int h,f,x,y ; scanf("%d%d", &h, &f); fun (h ,f, &x,&y ); //x、y代表鸡和兔的数目 printf("cocks=%d,rabbits=%d", x,y); return 0; }
35 94
结尾无空行
输出样例:cocks=23,rabbits=12
结尾无空行
鸡兔同笼问题,我们可以用小学的思想解决这个问题:
假如鸡与兔子都抬起两只脚,还剩下94-35×2=24只脚 , 这时鸡是屁股坐在地上,地上只有兔子的脚,而且每只兔子有两只脚在地上,所以有24÷2=12只兔子,就有35-12=23只鸡。
void fun ( int h,int f,int *p,int *q )//p鸡,q兔 { int n, m;//n鸡,m兔 m = (f-2*h)/2; //鸡和兔全部抬起两只脚,地上只剩下兔子的脚 n = h-m; //总头数—兔子头数=鸡的头数 *p = n; //赋值给p,q *q = m; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)