用R语言编程如何解决鸡兔同笼问题题

1959人阅读
java技术(141)
数据结构和算法(28)
public class A{public static void main(String[] args)int HEAD=50;int FOOT=120;for(int x=0;X&=HEAD;i++){int y=HEAD-x;if(x*2+y*4==FOOT){System.out.println("x="+x +","+y="+y);} }Help,求解鸡兔同笼问题(用C语言编程)_百度知道
Help,求解鸡兔同笼问题(用C语言编程)
Description
一个笼子中关了兔子和鸡(兔子有4只脚,鸡有2只脚,没有例外)。现在已经知道笼子中共有n只脚,问笼子中最大有多少只动物,最少有多少只动物?
第一行是一个整数T,表示测试数据的组数,后面有T行输入,每组测试数据占一行,包括脚的总...
我有更好的答案
给你个思路:1.兔子和鸡的脚都是偶数 得到:n只脚的n是偶数;2.n可以用一个数子来表示,即n=2k,k是自然数;3.判断k是奇数还是偶数,如果是偶数,则笼子中最少有n/4只动物,如果是奇数,那么笼子中最少有(k-1)/2只兔子+1只鸡(这个可以输出最少值);4.无论k是奇数还是偶数,笼子中最多有k只动物(这个可以输出最大值)。end程序是写出来的,关键是思路要对。
采纳率:16%
刚编了一份C++的,你可以参考一下:int m1,m2,n;//共有n只脚,现在设有m1只兔子和m2只鸡//只有这两种动物,那么n肯定为偶数,即当只有鸡的时候动物数量最多;//当全部为兔子时,最后会剩下0只脚或2只脚时动物数量最少cout&&&input a number n:&&&cin&&n;m2=n/2;cout&&&动物数量最大时全部为鸡,数量为:&&&m2&&int k,l=0;cout&&&动物数量最少时全部为兔子(situation1),或者为多数兔子与一只鸡(situation2);&&&if(k=n%4)
{m1=n/4;cout&&&此时为situation2,则有situation2动物数量为:&&&m1+1&&}else {l=n/4;cout&&&此时为situation1,则有situation1动物数量为:&&&l&&}return 0;
本回答被网友采纳
为您推荐:
其他类似问题
您可能关注的内容
鸡兔同笼问题的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。c语言题目 用穷举法完成鸡兔同笼的问题_百度知道
c语言题目 用穷举法完成鸡兔同笼的问题
鸡兔同笼共有30之,脚有90只,计算鸡和兔各有多少只?用穷举法
我有更好的答案
#include&&stdio.h&int&main(){&&&&int&x;&&&&for(&x=0;&x&=30;&x++&)&&&&{&&&&&&&&if&(&(2*x&+&4*(30-x))&==&90&)&&&&&&&&{&&&&&&&&&&&&printf(&&鸡&%d&只,&兔&%d&只\n&,&x,&30-x&);&&&&&&&&}&&&&}}
采纳率:55%
来自团队:
为您推荐:
其他类似问题
穷举法的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。raptor流程图编程用穷举法解决鸡兔同笼问题_百度知道
raptor流程图编程用穷举法解决鸡兔同笼问题
raptor流程图编程用穷举法解决鸡兔同笼问题
我有更好的答案
#include &stdio.h&int main(){
for( x=0; x&=30; x++ )
if ( (2*x + 4*(30-x)) == 90 )
printf( &鸡 %d 只, 兔 %d 只\n&, x, 30-x );
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言 鸡兔同笼问题_百度知道
C语言 鸡兔同笼问题
Description鸡和兔关在同一笼子中,已知总数量n和腿的总数量m,求鸡的数量和兔的数量。 Input输入2个整数分别是n和mOutput输出鸡的数量和兔的数量,中间用空格隔开,如果无解则输出No 我的程序 #include&stdio.h&
int main(void)
int n,m,a,b;
我有更好的答案
#include&&stdio.h&void&main(){&&&&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;&//&鸡的数目&&&&&&&&&&&&&d=a-c;&&//&兔的数目&&&&&&&&&&&&&if(c*2+d*4==b)&&&&&&&&&&&&&&&&printf(&鸡有%ld只\n兔有%ld只\n&,c,d);&//&c和d反了&&&&&&&&&&&&&else&&&&&&&&&&&&&&&&printf(&这个真难,计算机也没法算!\n&);&&&&&&&&&&&&}&&&&&&&&else&&&&&&&&&&&&printf(&输入鸡兔脚的数量范围不正确,正确的范围是%d--%d!\n&,a*2,a*4);&&&&&&&&}&&&&else&&&&&&&&printf(&数量不能为负!\n&);&&&&}
采纳率:95%
来自团队:
我觉得要用double,因为你要看它是不是自然数。int是整数,你储存在int中怎么可能为小数呢,而且你没有看是不是正数。公式也有问题。我写的帮我看看#include&stdio.h&int&main(void){&&&&double&a,b;&&&&int&x,y,n,m;&&&&scanf(&%d%d&,&n,&m);&&&&a=(double)(4*n-m)/2;//鸡&&&&b=n-a;//兔&&&&x=(int)a;&&&&y=(int)b;&&&&if(a!=x||b!=y||x&=0||y&=0)&&&&&&&&printf(&No\n&);&&&&else&&&&&&&&printf(&%d&%d\n&,x,y);&&&&return&0;}
本回答被网友采纳
include&stdio.h&int main(void){
int n,m,a,b;
scanf(&%d%d&,&n,&m);
if(n & 1 || m & n || m % 2 != 0)
printf(&No\n&);
b=(m - n * 2) / 2;
printf(&%d %d\n&,a,b);
return 0;}
我需要有人帮我改程序的说-.-,作业的话无所谓
判断无解是如下情况之一:1、头的总数小于1;2、脚的总数为奇数;3、脚的总数小于头的两倍; (我的上述程序的if语句中的m&n需改为m&2*n)4、脚的总数大于头的四倍。(我的上述程序的if语句中还得或一个m & 4 * n)算法是:兔子的数量=(脚的总数 - 总头数*2)/ 2;鸡的数量 = 总头数 - 兔子数;
本回答被提问者采纳
就是啊,你没有考虑异常的情况,腿不能使奇数吧
各位对异常情况的理解有点问题哈,其实很简单。C程序总是能算出答案,无论什么数据,只是这个数据无法再算回去。因此,异常的情况是m != 4 * a + b * 2 || n != a + b,当然,要注意m,n不能小于1,负数和0不是有效输入。另举两个我认为有趣的解法:让鸡和兔都举起两只脚,这里应该只能数到兔子的脚,(m - 2*n)/2即得兔子的数量。让鸡放下翅膀当脚,这时有4n个脚,其中真的脚只有m个,有4*n - m个翅膀,鸡的数量是(4 * n - m) / 2
你使用的是下面这个算法:鸡的只数=(4×鸡兔总只数-鸡兔总脚数)÷2 兔的只数=鸡兔总只数-鸡的只数但是不懂的是 if(a%1!=0||b%1!=0)你这里是什么意思??另外,输出时,别输出\n 这种多余的字符,只按照要求以空格分隔就好了??
if(a%1!=0||b%1!=0) 是 “如果无解则输出No”,就是a和b不是整数的情况 ,是不是我想错了。。。 \n这种是为了看起来顺眼打上的-.-,前几个也是这么提交的,问题应该不是这个吧
a b怎么可能不是整数呢?你声明的a 和 b都是int类型,那表示
a 和b一定是整数。所以这个无解就不怎么对了?
这样啊……我考虑不周,那具体条件应该怎么改?
#include&&stdio.h&void&main(){&&&&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;&//&鸡的数目&d=a-c;&&//&兔的数目&if(c*2+d*4==b)printf(&鸡有%ld只\n兔有%ld只\n&,c,d);&//&c和d反了&elseprintf(&这个真难,计算机也没法算!\n&);&&&&}elseprintf(&输入鸡兔脚的数量范围不正确,正确的范围是%d--%d!\n&,a*2,a*4);&&&&}elseprintf(&数量不能为负!\n&);&&&&}
其他4条回答
为您推荐:
其他类似问题
鸡兔同笼问题的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 编程解决鸡兔同笼问题 的文章

 

随机推荐