将课程作业010203的设计思想源程序代码和结果截图整理成一篇博文。。
Posted My-friend
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将课程作业010203的设计思想源程序代码和结果截图整理成一篇博文。。相关的知识,希望对你有一定的参考价值。
信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);
}
}
}
以上是关于将课程作业010203的设计思想源程序代码和结果截图整理成一篇博文。。的主要内容,如果未能解决你的问题,请参考以下文章
课后作业02-1-将课程作业01的设计思想程序流程图源程序代码和结果截图整理。
本次国庆的作业:将课程作业01的设计思想程序流程图源程序代码和结果截图整理成一篇博文