c语言算法,鸡兔同笼 30
用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,就可以算出共有多少只兔。
概括起来,解鸡兔同笼题的基本关系式是:兔数=(实际脚数-每只鸡脚数×鸡兔总数)÷(每只兔子脚数-每只鸡脚数)。类似地,也可以假设全是兔子。
2022-12-05 广告
鸡数=t-兔数
大哥,要用c语言做
你非要一次次循环也可以,但是C语言最注重的是效率,明明能更简单的完成,为什么非要麻烦呢,等你学到算法课就懂了。
#include <stdio.h>
int main() {
int numFeet, numHead, numFeetLeft, numChicken, numRabbit;
printf("输入头数:");
scanf("%d", &numHead);
do {
printf("输入脚数:");
scanf("%d", &numFeet);
} while (numFeet % 2 != 0);
numFeetLeft = numFeet - numHead * 2;
numRabbit = numFeetLeft / 2;
numChicken = numHead - numRabbit;
printf("一共有%d只鸡和%d只兔子。", numChicken, numRabbit);
return 0;
}
能否简单点,我们只学到基本数据类型
我们用的是if else
2020-11-16
using namespace std;
int main(){
int h,f,j,t;//定义h(头)、f(脚),j(鸡)t(兔子)
cin>>h>>f;
j=(4*h-f)/(4-2);
t=h-j;
if((j>=0)&&(t>=0)&&(f==4*t+2*j))
cout<<j<<" "<<t;
else
cout<<"数据有误";
return 0;
}