码迷,mamicode.com
首页 > 其他好文 > 详细

将课程作业01、02、03的设计思想、源程序代码和结果截图整理成一篇博文。。

时间:2017-10-13 10:10:32      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:ext   public   illegal   png   main   公式   组合数   如何   stat   

信1605-3  于丁一 20163578 

使用组合数公式利用n!来计算

设计思想:首先要判断一个数的阶乘如何表达,然后调用方法用组合数公式,最后求出组合数。

package n的阶乘;

public class number {
public static void main(String[] args){
int a=4;
int b=5;
System.out.println("C("+a+","+b+")="+gNum(a,b));
}
public static int gNum(int m,int n){
if(m==0||m==n)
return 1;
else return f(n)/(f(m)*f(n-m));
}
public static int f(int z){
if(z==1)
return 1;
else return z*f(z-1);
}
}

技术分享

技术分享

使用递推的方法用杨辉三角形计算

设计思想:首先需要构建一个杨辉三角,最后的结果就是杨辉三角形中的一个数,最后输出对应的数就可以

package 使用递推的方法用杨辉三角形计算;
import java.util.Scanner;
import java.math.BigInteger;
public class Number {

public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner scanner=new Scanner(System.in);
System.out.println("输入两个数并用空格隔开");
int n=scanner.nextInt();
int k=scanner.nextInt();
BigInteger[][] a=new BigInteger[n][n];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if((i==0)&&(j==0))
a[i][j]=BigInteger.valueOf(1);
else if(j==0||j==i)
a[i][j]=BigInteger.valueOf(1);
else if(j<=i)
a[i][j]=a[i-1][j-1].add(a[i-1][j]);
else
a[i][j]=BigInteger.valueOf(0);

}
}

System.out.println("n!/(k!*(n-k)!)="+a[n-1][k-1]);
}

使用递归的方法用组合数递推公式计算

设计思想:首先定义组合数中的两个数,调用方法,并且在方法中在调用自己,完成递归,最后输出正确的结果。

package 使用递归的方法用组合数递推公式计算;

public class Number {
public static void main(String[] args){
int a=4;
int b=5;
System.out.println("C("+a+","+b+")="+gNum(a,b));
}
public static int gNum(int m,int n){
if(m==0||m==n)
return 1;
else return gNum(m-1,n-1)+gNum(m,n-1);
}
}

技术分享

递归编程解决汉诺塔问题。用Java实现

设计思想:利用递归,先留一个圆盘,把n-1个圆盘先移动,把最后一个圆盘移到c上,以这样的方法移动。

 

public class Number {

public static void main(String[] args) {
int disk = 5;
move(disk, ‘A‘, ‘B‘, ‘C‘);
}

private static void move(int topN, char from, char inter, char to) {
if (topN == 1) {
System.out.println("Disk 1 from " + from + " to " + to);
} else {
move(topN - 1, from, to, inter);
System.out.println("Disk " + topN + " from " + from + " to " + to);
move(topN - 1, inter, from, to);
}


}

}

技术分享

使用递归方式判断某个字串是否是回文( palindrome )

设计思想:比较首尾的字符,要是相同在继续比较第二个字符,按照这样的方法一直比较,知道相同,输出结果。

 

package 回文;

import java.util.Scanner;

public class Number {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String s = in.nextLine();
int i = 0;
int j = s.length() - 1;
System.out.println(s + " 是回文数么? " + Number .gNum(s, i, j));
}

public static boolean gNum(String s,int i,int j){
if(i > j)
throw new IllegalArgumentException();
if(i == j)
return true;
else{
return (s.charAt(i) == s.charAt(j)) && gNum(s,i+1,j-1);
}
}

}

 技术分享

技术分享

将课程作业01、02、03的设计思想、源程序代码和结果截图整理成一篇博文。。

标签:ext   public   illegal   png   main   公式   组合数   如何   stat   

原文地址:http://www.cnblogs.com/ydy1/p/7659238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!