鸡兔同笼的问题 c语言怎么样编写
发布网友
发布时间:2022-04-26 04:50
我来回答
共7个回答
热心网友
时间:2022-05-19 13:09
鸡兔同笼是中国古代的数学名题之一。
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:
今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
这四句话的意思是:
有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”
程序如下:
#include <stdio.h> int main()
{ int T; int n; int m;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
if((m-2*n)>=0 && (m-2*n)%2==0 && (4*n-m)>=0 && (4*n-m)%2==0)
printf("%d %d\n",(4*n-m)/2,(m-2*n)/2);
else
printf("No answer\n");
} return 0;
}
扩展资料:
C语言新手编程注意事项:
1、书写标识符时,忽略了大小写字母的区别。
2、忽略了变量的类型,进行了不合法的运算。
3、将字符常量与字符串常量混淆。
4、忽略了“=”与“==”的区别。
5、忘记加分号。
6、多加分号。
7、输入变量时忘记加地址运算符“&”。
8、输入数据的方式与要求不符。
参考资料来源:百度百科-C语言
热心网友
时间:2022-05-19 14:27
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、代码及注释如下:
#include<stdio.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对翅膀),三种动物各几只?
参考资料来源:百度百科-鸡兔同笼问题
热心网友
时间:2022-05-19 16:02
输入说明: 输入为两个正整数,第一个为 M 的值,第二个为 N 的值,用空格分隔。
输出说明: 若有解,输出两个整数,用空格分隔,第一个代表鸡的只数,第一个代表兔子的只数;若无解,直接输出一个 0。
算法:以列举法写程序,让计算机从鸡为0开始执行计算,利用循环语句计算大量次数后,得出最终结果。
具体程序为:
#include <stdio.h>
int main()
{int chicken,rabbit;//鸡,兔子
int M,N;//头,脚
printf("M=,N=");
scanf("%d %d",&M,&N);
for(chicken=0;chicken<=M;chicken++)//鸡的数量从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只。
解得
参考资料:鸡兔同笼(一种数学奥数题目)_百度百科
热心网友
时间:2022-05-19 17:53
#include "stdio.h"
void main()
{
long int a,b,c,d;
char ch,bh;
printf("请输入鸡与兔子的总数\n");
while(scanf("%d",&a)!=1)
{
printf("请输入正确的数量:");
for ( ; (ch = getchar())!='\n' && ch != EOF; )
{
continue;
}
}
printf("请输入鸡与兔子的脚的总数\n");
while(scanf("%d",&b)!=1)
{
printf("请输入正确的数量:");
for ( ; (bh = getchar())!='\n' && bh != EOF; )
{
continue;
}
}
c=(4*a-b)/2;
d=a-c;
if(c>=0&&d>=0)
{
if(c*2+d*4==b)
{
printf("鸡有%ld只\n",c);
printf("兔子有%ld只\n",d);
}
else printf("同学,我看你给的数有错吧!");
}
else printf("同学,我看你给的数有错吧!");
}
热心网友
时间:2022-05-19 20:01
#include<stdio.h>
int main()
{
int h,f,x,y;
printf("输入头数与脚数\n");
printf("头=");
scanf("%d",&h);
printf("脚=");
scanf("%d",&f);
y=(f-2*h)/2;
x=h-y;
printf("鸡=%d,兔=%d\n",x,y);
}
热心网友
时间:2022-05-19 22:26
我帮你编一个试试
假设有head个头和foot只脚 程序如下:
#include<stdio.h>
void main()
{int i,head,foot,rabbit,chick;
printf("Enter the 2 numbers :");
scanf("%d%d",&head,&foot);
printf("head=%d,foot=%d\n",head,foot);
for(i=0;i<=head;i++)
{rabbit=i;
chick=head-rabbit;
if(rabbit*4+chick*2==foot)
printf("rabbit=%d,chick=%d\n",rabbit,chick);
}
}
热心网友
时间:2022-05-20 01:07
#include <stdio.h>
int main ()
{
int a,b,x,y;
printf("请输入多少个头");//a表示鸡兔总数,b表示鸡兔总脚数//
scanf("%d",&a);
printf("请输入多少个脚");
scanf("%d",&b);
if(b%2!=0||b<2*a||b>4*a)
{
printf("鸡兔总数不对!\n");
}
else
x=(4*a-b)/2;
y=a-x;
if(2*x+4*y==b)
printf("鸡%d\n兔%d\n",x,y); //x表示鸡数,y表示兔数//
return 0;
}
鸡兔同笼的问题 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、代码及注释如下:include<stdio.h> main ( ){ int a, b ;prin...
c语言算法,鸡兔同笼
已知鸡和兔的总数量为n,总腿数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解则输出No answer。输入:两个整数b和m,如上所述。输出:鸡的数目和兔的数目。我们假设a = 鸡只数,b = 兔只数(兔的脚数×总只数-总脚数)÷(兔的脚数-鸡的脚数)=鸡的只数,a = ( 4*n -...
想用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\...
c语言编程算鸡兔同笼怎么编写?
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;//预置头数、脚数 ...
用C语言怎么打鸡兔同笼
include<stdio.h> int main(){ int f,i;scanf("%d",&f);printf("鸡\t兔\n");for(i=1;i<f/4;i++)printf("%d\t%d\n",(f-4*i)/2,i);return 0;}
用C语言编写鸡兔同笼问题
for(c=0;c<=h;c++)for(r=1;r<=h;r++) //这句改成:for(r=0; r <= h-c; r++)好点,减少的循环的次数,加了效率 { if(c+r==h&&2*c+4*r==f)ret = printf("\n鸡的数目为%d,兔子的数目为%d\n\n",c,r);} if( ret == 39) /*作用是输入一次成功后,结束大...
C语言:鸡兔同笼问题
{ 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; ...
鸡兔同笼问题C语言程序编写
鸡兔同笼,共有35个头,94条腿,求鸡和兔子各有多少只?include<bits/stdc++.h>using namespace std;int main(){int a,b,c,d;a=35,b=94;c=2*a-b/2;d=b/2-a;cout<<"c="<<c<<"d="<<d<<endl;return 0;} c=23 d=12 ...
C语言。鸡兔同笼问题。 鸡兔总头数h。 总脚数为f。求鸡兔各有多少只...
可以参考下面的代码(具体的数值用户可以根据需要进行定义):main(){ int h=20,int f=50;%(根据题目要求定义的H F)for(i=1;i<h;i++){int tuzi=h-i;if(2*i+tuzi*4==f)printf("鸡和兔的数量分别为%d%d “,i,c);else i++;} } ...
鸡兔同笼问题,已知鸡、兔总头数是m,总脚数是n,请编写程序求出鸡、兔各...
设鸡j只,兔t只 则j+t=m①,2j+4t=n② ①×2:2j+2t=2m③ ②-③:2t=n-2m 得:t=n/2-m j=m-t=m-(n/2-m)=m-n/2+m=2m-n/2 C语言程序如下:main(){ int m,n,j,t,i;scanf("%d%d",&m,&n);for(i=0;i<m;i++){ if(2*i+4*(m-i)==n){ j=i;t=m-...