课后作业01,02,03
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课后作业01,02,03相关的知识,希望对你有一定的参考价值。
使用递推的方法用杨辉三角形计算
设计思想:先输入两个参数值,然后递归调用方法求值,最后输出结果
流程图:
代码:
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);
}
结果:
设计思想:利用递归,把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);
}
}
结果:
回文字符串问题
设计思想:
输出字符串,判断首尾字符是否相等,不相等输出不回文,相等则递归调用函数,判断再里面的字符是否相等,知道遍历整个字符串;
流程图:
代码:
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;
}
}
结果:
以上是关于课后作业01,02,03的主要内容,如果未能解决你的问题,请参考以下文章