300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 鸡兔同笼问题java解决

鸡兔同笼问题java解决

时间:2022-09-25 14:52:16

相关推荐

鸡兔同笼问题java解决

鸡兔同笼问题

鸡兔同笼问题最早记载在《孙子算经》中,原文是这样子的

今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?

问题很简单也很有趣

正常的做法:设两个未知数,联立方程求解

鸡的数量x,兔的数量y

由题目列式:

x+y=35

2x+4y=94

然后解方程就好啦

那么如果用java语言要怎么做呢?看这里!

整体代码:

import java.util.Scanner;//通过Scanner类来获取用户的输入public class XiaoJiuCai{static void JiTuTongLong(int head,int foot,int[]Tu,int[]Ji){Tu[0]=(foot-2*head)/2;Ji[0]=head-Tu[0];}//定义JiTuTongLong()方法public static void main(String[]args)//主方法{int[] Ji={0},Tu={0};int head,foot;System.out.println("鸡兔同笼问题java语言求解");System.out.println("输入头数:");Scanner input=new Scanner(System.in);//使用Scanner类创建一个对象head=input.nextInt();//input对象调用方法(函数)nextInt(),方法执行造成堵塞,等待用户输入(这里是头数)System.out.println("输入脚数:");foot=input.nextInt();//这里是输入脚数JiTuTongLong(head,foot,Tu,Ji);//调用JiTuTongLong()方法System.out.printf("鸡有:%d只,兔有:%d只",Ji[0],Tu[0]);}}

其中所用到的代码知识不多,但思路逻辑很重要,以下归纳是一些杂七杂八的归纳,及鸡兔同笼算法的思路分析

import java.util.Scanner;//通过Scanner类来获取用户的输入

因为要用到输入这一操作,故这里是导入java.util包下的Scanner类

public class XiaoJiuCai{static void JiTuTongLong(int head,int foot,int[]Tu,int[]Ji){Tu[0]=(foot-2*head)/2;Ji[0]=head-Tu[0];}//定义JiTuTongLong()方法

这里注意,如果一个类声明的时候使用了public class 进行了声明,则类名称必须与文件名称完全一致。

Scanner input=new Scanner(System.in);

这里是使用Scanner类创建一个对象,对象名为input。

head=input.nextInt();

这里对象调用方法,方法这里用到的是int整数型。

System.out.printf("鸡有:%d只,兔有:%d只",Ji[0],Tu[0]);

这里%d是占位符

划重点啦!以下是这个问题的代码设计思路

兔子和鸡,两种小动物在问题里存在一个相同特征和一个不同特征,兔子的jiojio是小鸡的两倍,于是我们可以先假定笼子里都是小鸡,那么就是一个头对应两只脚,但这个问题脚的只数是多出来的,故可以看成,剩余的脚是兔子另外的两只脚(目前另两只被我们算给了小鸡)我们把剩余的脚数除以二,就知道了兔子的数量,由于头数一定,总头数减去兔子的头数自然就是小鸡正确的数量。java就此思路设计,先定义JiTuTongLong()方法作为运算方法,然后定义主方法(代码运行起点)在其中引导用户输入问题条件,随后调用设计好的运算方法解决,最终打印出结果。

嗯,鸡兔同笼问题就先解答到这里,后续发现新大陆会进行补充,也欢迎大家指正补充,算法是活的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。