c语言算法,鸡兔同笼 30

c语言算法,鸡兔同笼今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?用c语言怎么做,还要写错误,比如足不能是单数,否则输入错误,用最基础的知识,不能用数组... c语言算法,鸡兔同笼今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
用c语言怎么做,还要写错误,比如足不能是单数,否则输入错误,用最基础的知识,不能用数组
展开
 我来答
热爱学习的Genji
高粉答主

2020-11-04 · 说的都是干货,快来关注
知道小有建树答主
回答量:1894
采纳率:100%
帮助的人:29万
展开全部

已知鸡和兔的总数量为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 广告
#include int main() { int chicken,rabit;/鸡,兔子 int M,N;/头,脚 printf("M=,N="); scanf("%d %d",&M,&N); for(chicken=0;chicken... 点击进入详情页
本回答由--提供
ChengZiXianS
2017-12-27 · TA获得超过1011个赞
知道小有建树答主
回答量:1434
采纳率:72%
帮助的人:456万
展开全部
题目的意思就是要你输入头数和足数,输出鸡兔各几只,设输入足数z,则z%2不能等于1,设输入头数t,兔数=(z-2t)/2;
鸡数=t-兔数
追问
大哥,要用c语言做
追答
你非要一次次循环也可以,但是C语言最注重的是效率,明明能更简单的完成,为什么非要麻烦呢,等你学到算法课就懂了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hn9716
2017-12-27 · TA获得超过400个赞
知道答主
回答量:33
采纳率:100%
帮助的人:27.7万
展开全部
#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
展开全部
#include <iostream>
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小柠檬课堂
2020-10-30
知道答主
回答量:95
采纳率:0%
帮助的人:4.6万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式