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

使用计算机计算组合数:

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

流程图:

代码:

import java.util.Scanner;
public class Ynaghui3
{

public static void main(String args[])
{
Scanner aa=new Scanner(System.in);
int m,n;
System.out.println("请输入m、n:");
m=aa.nextInt();
n=aa.nextInt();
int c=jisuan(m)/(jisuan(n)*jisuan(m-n));
System.out.println("C("+m+","+n+")的值为:"+c);
}
public static int jisuan(int i)
{
if(i==1)
return 1;
else
return i*jisuan(i-1);
}

}

结果:

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

设计思想:先输入两个参数值,然后递归调用方法求值,最后输出结果

流程图:

代码:

import java.util.Scanner;
public class Yanghui
{

public static void main(String args[])
{
Scanner aa=new Scanner(System.in);
int m,n;
System.out.println("请输入m、n:");
m=aa.nextInt();
n=aa.nextInt();
System.out.println("C("+m+","+n+")的值为:"+jisuan(m+1,n+1));
}
public static int jisuan(int i,int j)
{
if(j==1||j>=i)
return 1;
else
return jisuan(i-1,j)+jisuan(i-1,j-1);

}

结果:

2,汉诺塔问题

设计思想:利用递归,把n-1个圆盘先移动b,把最后一个圆盘移到c上,以这样的方法移动,然后以这n-1个盘重新开始,知道所有盘都移到c上

流程图:

代码:

import java.util.Scanner;


public class Hanoi {

public static void main(String[] args)
{
Hanoi a =new Hanoi();
System.out.println("输入盘子数量:");
Scanner input = new Scanner(System.in);
int n =input.nextInt();
a.hanoi(n, 'A', 'B', 'C');
}
void hanoi(int n,char one,char two,char three)
{

if(n==1)
move(one,three);

else
{
hanoi(n-1,one,three, two);
move(one,three);
hanoi(n-1,two,one, three);
}
}
void move(char x,char y)
{
System.out.println(x+"移到"+y);
}
}

结果:

3.回文字符串问题

设计思想:

输出字符串,判断首尾字符是否相等,不相等输出不回文,相等则递归调用函数,判断再里面的字符是否相等,知道遍历整个字符串;

流程图:

代码:

import java.util.*;
public class Palindrome {

String str;


/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("请输入字符串:");
Scanner input = new Scanner(System.in);
Palindrome aa=new Palindrome();
int d=0,c;
aa.str = input.next();
c=aa.str.length()-1;
aa.huiwen(d,c);

}
public int huiwen(int d,int c)
{
if(d==str.length())
{
System.out.println(d+"回文"+str.length()+"回文");
System.out.println(str+"回文");
System.exit(0);
}
if(str.charAt(c)!=str.charAt(d))
{
System.out.println(str+"不回文");
return 0;
}
if(str.charAt(c)==str.charAt(d))
{
return huiwen(d++,c--);
}

return 0;

}

}

结果:

原文地址:https://www.cnblogs.com/wj1998/p/7663918.html