用简单的java语言解决趣味小知识
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。在我们学习java编程语言的过程中,我们可以用我们所学习的简单的语法解决一些非常有趣的小问题,既可以帮助我们理解java程序逻辑,又可以让枯燥的java变得简单有趣。
百钱买鸡
我国古代数学家张丘建在《张丘建算经》一书中提出了“百鸡问题”:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡,母鸡,雏鸡多少只?
关键思路:
我们可以用我们学过的二重循环来实现。用整形变cock来表示公鸡的数量,用hen来表示母鸡的数量,chicks来表示雏鸡数量。公鸡(cock)不可能超过20只,母鸡(hen)不可能超过33只。我们想想可以得到5*cock+3*hen+k/3=100。公鸡(cock)母鸡(hen)加上小鸡(chicks)一共100只。
解决办法:
先我们定义三个变量:公鸡(cock),母鸡,(hen)和小鸡(chicks)。我们以公鸡(cock)为列。我们知道100文部来买公鸡的话公鸡不能超过20只!这样我们就可以得出我们外层循环的循环条件是for(cock=0;cock<=20;cock++) 如下图所示
内层循环怎么做呢?其实还是一样的思路,内层循环我们用母鸡的数量作为循环条件,3文钱一只的母鸡,总数是不可能超过33只的。所以我们用同样的思路就写出了内层循环for(hen=0;hen<=33;hen++)
如下图所示
我们循环条件写好了。循环里面的代码该怎么实现呢?大家可以想一下,当公鸡(cock)为0只,进入内层循环,当母鸡(hen)为0只那么小鸡(chicks)的数量为多少呢?100只鸡减去公鸡(cock)的数量再减去母鸡(chicks)的数量自然就是小鸡(chicks)的数量。其实还有一个大家都忽视的一个点就是小鸡(chicks)是1文钱3只,假如是4只那么我们花了多少钱?所以这一点我们一定要考虑面!这样按思路做下去,我们还要在if()判断语句里面加上一个判断条件小鸡(chicks)的数量余3必须是0。这样我们整理下思路和代码,就能得出结论了!如下图所示:
答案就是如下图所示:
做完了百钱买鸡的问题是不是觉得用java来做这样的题目很有意思?下面还有几个题目让我们一起来看看吧!
鸡兔同笼
还有一个古代非常有趣的问题,小时候老师都讲过鸡兔同笼。那我们怎么用java程序实现鸡兔同笼的问题?
今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
关键思路:
我们还是可以用for循环来做这题,从这个题目中我们知道可以定义两个变量,鸡兔一共有94条腿,我们知道兔子有4条腿,所以兔子多只能有94除以4,就是23只余2.。然后鸡的只数就是总数的35减去兔子的只数。我们想好思路后就可以开始用java来实现这个题目了。
解决办法:
先我们当然就是要定义鸡(chicken)这个变量跟兔(rabbit)这个变量,接下来就是用我们的for循环来实现了。可是我们循环条件该写什么呢?这就要用到我们刚才想到的思路了!鸡兔一共有94条腿,兔子(rabbit)的只数多就只能是23(只)余2。这样想一想我们for循环就只用循环23次就够了。这样我们for循环里面的条件就出来了。
如图所示
下面我们再看看循环体里面的代码该怎么写。鸡(chicken)的数量就是鸡兔的总和减去兔(rabbit)的数量,我们下一步就该写chicken=35-rabbit;接下来我们还是要用if()判断语句来判断兔子的数量跟鸡的数量是否符合题目条件,脚的数目加起来是否等于94只。这样我们就可以得出我们题目的答案了。
如下图所示:
怎么样?做完题是不是觉得第二题很类似呢?其实学习java编程语言,只要理清思路,那么你一定能成为一个大牛。下面还有一个题目大家一起来看看吧!
猴子吃桃问题
猴子天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天吃剩下的一半零一个。到第十天早上想再吃时,见只剩下一个桃子了。求天共摘了多少?
关键思路:
这个题目就跟上面的不一样。但是我们只要认真看题目就能找到其中关键的东西,猴子天摘了若干个桃子,吃了一半,不过瘾,又多吃了一个。第二天又吃了一半加上一个,这样我们就可以用数学上面的公式来做。我们定义一个变量m代表的是后面一天的桃子的个数,n就是前面一天的个数。我们求得就是天的个数也就是n的值。我们得出一个方程式为m=(n/2-1),我们的目的就是求n 的值。换算过来就是n=2(m+1),再往前面一天计算的话,n就是m。
解决方法:
我们定义变量m,代表的是我们思路里面的n。因为在java里面我们的=是赋值,我们for()循环里面的循环变量就是天数而定也是10天,我们要求天的猴子摘得桃子数量所以我们要从第十天开始降序算起。循环变量就是for(int i =10;i>0;i--)。
接下来就是要求出桃子的数量,我们在关键思路里面说过,后n就等于m所以要求出m(n)的值,就有m=2*(m+1)。我们理清代码就能得出我们的答案了。
如图所示:
答案就是:
做完上面的这几道非常有趣的题目是不是对java的兴趣越来越大了?其实大家可以多去网上找一找趣味题目用java来实现,过程很辛苦,但是做出来之后是非常有成就感的!大家一起去知识的海洋里面遨游吧!
北大青鸟鲁广校区 21315班 向毅涵
- 高中毕业可以学武汉北大青鸟Java课程吗?
- 武汉北大青鸟Java前景怎么样?
- Java程序员的就业前景怎么样?
- 学会Java工程师后的就业前景如何?
- Java和C++之间的区别以及它们的就业前景
- JavaScript 中的时间对象是什么?
- 计算机函数返回值是什意思?具体怎样使用?
- JavaScript中的函数then()是什么意思?
- Java是什么语言?Java面试题
- 面试题:java中有哪些运算符?
看过该学员活动的还看过
本文标题:#用简单的java语言解决趣味小知识#,宏鹏发布于北大青鸟鲁广校区。Java的应用范围很广泛。在学习java编程语言的过程中,我们可以用所学的知识解决生活中遇到的一些应用问题。它既能帮助我们巩固所学知识,又能增强我们的成就感。