JAVA中方法的定义与使用(课堂学习归纳)
组合数,百度词条是这样解释的:从m个不同元素中取出n(n≤m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数(Combination)
对于计算组合数,需要一定的工作量,计算机可以很好的帮助我们机选组合数,下面总结3种Jav计算组合数的方法;
一:
源代码如下:
package bky_1;
import javax.swing.JOptionPane; public class zuheshu { public static int factorial(int x)
{
if(x==1||x==0)
{
return 1;
}
return factorial(x-1)*x;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int n,k,w;//组合数的上上下限,w表示组合数结果
String n1,n2;
System.out.println("请输入组合数的上下限");
n1=JOptionPane.showInputDialog("enter the upper number");
k=Integer.parseInt(n1);
n2=JOptionPane.showInputDialog("enter the lower number");
n=Integer.parseInt(n2);
w=factorial(n)/(factorial(k)*factorial(n-k));
System.out.println("组合数结果为"+w); } }
介绍:
利用计算阶乘函数的方法,通过公式C(k/n)=n!/(k!*(n-k)!),得到组合数结果。
二:
源代码:
package bky_2; public class zuheshu2 {
public static int factorial(int x,int y)
{
int i,j;
int a[][]=new int[20][20];
for(i=0;i<20;i++)
{a[i][0]=1;}
for(i=1;i<20;i++)
{a[i][i]=1;} for(i=2;i<20;i++)
for(j=1;j<i;j++)
{a[i][j]=a[i-1][j-1]+a[i-1][j];}
return a[x][y];
} public static void main(String[] args) { int w;
w=factorial(8,2);
System.out.println("计算下限20以内的组合数");
System.out.println("C(2/8)=");
System.out.println(w);
} }
介绍:利用杨辉三角的性质,定义二维数组,直接输出对应的组合数结果。
三:
源代码:
package bky_3; public class zuheshu3 {
public static int factorial(int x,int y)
{
int a[][]=new int [20][20];
if(y==0||x==y)
{return 1;}
return factorial(x-1,y-1)+factorial(x-1,y); } public static void main(String[] args) {
// TODO Auto-generated method
System.out.println("计算20以内的组合数");
System.out.println("C(8/2)");
System.out.println(factorial(8,2)); } }
介绍:
利用递归函数的性质,递归的调用函数,得到最后组合数的结果。递归函数为
public static int factorial(int x,int y)
{ int a[][]=new int [20][20];
if(y==0||x==y) {return 1;}
return factorial(x-1,y-1)+factorial(x-1,y); }
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。在Java中,可以利用递归函数进行运行。
源代码:
// TowersOfHanoi.java
// Towers of Hanoi solution with a recursive method.
public class TowersOfHanoi
{
// recursively move disks between towers
public static void solveTowers( int disks, int sourcePeg,
int destinationPeg, int tempPeg )
{
// base case -- only one disk to move
if ( disks == 1 )
{
System.out.printf( "\n%d --> %d", sourcePeg, destinationPeg );
return;
} // end if // recursion step -- move (disk - 1) disks from sourcePeg
// to tempPeg using destinationPeg
solveTowers( disks - 1, sourcePeg, tempPeg, destinationPeg ); // move last disk from sourcePeg to destinationPeg
System.out.printf( "\n%d --> %d", sourcePeg, destinationPeg ); // move ( disks - 1 ) disks from tempPeg to destinationPeg
solveTowers( disks - 1, tempPeg, destinationPeg, sourcePeg );
} // end method solveTowers public static void main( String[] args )
{
int startPeg = 1; // value 1 used to indicate startPeg in output
int endPeg = 3; // value 3 used to indicate endPeg in output
int tempPeg = 2; // value 2 used to indicate tempPeg in output
int totalDisks = 3; // number of disks // initial nonrecursive call: move all disks.
solveTowers( totalDisks, startPeg, endPeg, tempPeg );
} // end main
} // end class TowersOfHanoi
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。在Java中,可以用递归函数,判断一个字符串是否为回文的。
源代码:
package bky_4; import java.util.Scanner; public class huiwenshu {
public static boolean huiwenshu(String text)
{
int length=text.length();
for(int i=0;i<length/2;i++)
{
if(text.charAt(i)!=text.charAt(length-i-1))
{
return false;
}
}
return true;
} public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入一个字符串:");
Scanner s=new Scanner(System.in);
String str=null;
str=s.next();
if(huiwenshu(str))
{System.out.println("是回文数");} else{System.out.println("不是回文数");}
} }
JAVA中方法的定义与使用(课堂学习归纳)的更多相关文章
- Java中方法的定义与使用
Java中方法的定义与使用 1.方法的定义: 方法是一段可以被重复调用的代码块. 方法的声明: public static 方法返回值 方法名([参数类型 变量--]){ 方法代码体: return ...
- 深入理解为什么Java中方法内定义的内部类可以访问方法中的局部变量
好文转载:http://blog.csdn.net/zhangjg_blog/article/details/19996629 开篇 在我的上一篇博客 深入理解Java中为什么内部类可以访问外部类的成 ...
- java中方法的定义
所谓的方法(将方法称为函数)指的就是一段可以被重复调用的代码块. 对于方法的返回值类型有两种使用形式: · 有数据返回:返回值类型就使用 Java 中定义的数据类型: · 无数据返回:使用 void ...
- Java中方法的定义与使用,以及对数组的初步了解。
方法 方法的含义 定义: 方法就是用来完成解决某件事情或实现某个功能的办法. 方法实现的过程中,会包含很多条语句用于完成某些有意义的功能——通常是处理文本,控制输入或计算数值. 我们可以通过在程序代码 ...
- Java中返回值定义为int类型的 方法return 1返回的是int还是Integer&&finally中return问题
在Java中返回值定义为int类型的 方法return 1:中返回的是Integer值,在返回的时候基本类型值1被封装为Integer类型. 定义一个Test类,在异常处理try中和finally中分 ...
- 深入理解Java中方法的参数传递机制
形参和实参 我们知道,在Java中定义方法时,是可以定义参数的,比如: public static void main(String[] args){ } 这里的args就是一个字符串数组类型的参数. ...
- java中方法的重载和覆盖
java中方法的重载和覆盖 先来了解一下这两个名词的含义. 重载: 在一个类当中才可以重载,方法名相同,参数个数不同或参数个数相同而参数类型不同. 覆盖: 又称重写,在派生类(子类)中重写基类(父类) ...
- Java中方法的重载
Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方 ...
- java中方法调用
JAVA中方法的调用[基础] 一.调用本类中的方法 方法一.被调用方法声明为static ,可以在其他方法中直接调用.示例代码如下: public class HelloWord { /** * @p ...
随机推荐
- sql server数据库中删除的过程
这是在vb中的一个对数据库中数据的删除过程,点击按钮后程序第一句则是将你要删除的那条记录的位置作为书签保存到myBookmark这个变量里面,然后选择确定删除的话,首先执行if语句下的第一句 mrc. ...
- android实习程序6——拨号通话
拨号通话 ListView GridView AdapterView 在路径android-sdkr16\android-sdkr16\platform-tools确认存在adb.exe 下载youl ...
- Android中系统设置中的清除数据究竟会清除哪些数据
今天中的一个story突然提到了系统设置中的清理数据,后来开始思考究竟系统的应用的这个清理功能,究竟会清理那些数据. 于是开始研究,以com.mx.browser为例,思路大概为首先为/data/da ...
- 学习OpenCV:滤镜系列(15)——羽化(模糊边缘)
============================================== 版权所有:小熊不去实验室CSDN博客 ================================== ...
- PRJ: Split a nodes-map into some triangles
PRJ: Split a nodes-map into some triangles Share the source codes of this algorithm to your guys... ...
- 神经机器翻译(NMT)相关资料整理
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统 ...
- mybatis 入门进阶之 mapper
由于上节 <mybatis 入门优化>中的dao实现类耦合了user.xml中的statment的id,例如:src.main.resource.userMapper.findUserBy ...
- Server Tomcat v6.0 at localhost was unable to start within 45 seconds
在eclipse里启动tomcat的时候出现以下的错误: Server Tomcat v6.0 at localhost was unable to start within 45 seconds. ...
- Linux下网卡BCM4313的安装
我遇到的问题:打开网络管理->wifi 显示固件缺失 通过: 1 lspci | grep Wireless 显示: 1 08:00.0 Network controller: Broadcom ...
- python3的文件读写模式
任何一种语言,文件的读写都是非常常见的.python的文件读写非常简单,仅仅一个函数open(file也可以,但是我不常用). 先看看官网的解释: open(file, mode='r', buffe ...