课后作业一

1.设计思想:

(1)通过组合数公式计算:分别输入中的n和k的值。定义一个计算n!的方法,然后调用方法分别计算出n!,k!,(n-k)!,然后通过公式=n!/(k!*(n-k)!)算出的值。

(2)通过杨辉三角计算:分别输入中的n和k的值。定义一个递归的函数public int C(int n,int k),int c.当n==k时c=1,当n!=1&&k==1时,c=n;

此外调用自身函数c=C(n-1,k)+C(n-1,k-1)。

2.程序流程图:

(1)

(2)

3.程序源代码:

import java.math.BigInteger;

import java.util.Scanner;

public class Homework1

{

public static void main(String args[])

{

Scanner input=new Scanner(System.in);

int n,k,c;

B b=new B();

System.out.println("使用组合数公式的方法:");

System.out.println("输入n值:");

n=input.nextInt();

System.out.println("输入k值:");

k=input.nextInt();

System.out.println("结果:"+"C "+ n+"取"+k+"的值为:"+b.C1(n,k));

System.out.println();

System.out.println("使用杨辉三角方法的方法:");

System.out.println("输入n值:");

n=input.nextInt();

System.out.println("输入k值:");

k=input.nextInt();

System.out.println("结果:"+"C "+ n+"取"+k+"的值为:"+b.C2(n,k));

}

}

class B

{

public BigInteger C1(int n,int k)

{

BigInteger c;

if(n==k)

c= BigInteger.ONE;

else if(n!=1&&k==1)

c= BigInteger.valueOf(n);

else

c= C1(n-1,k-1).add(C1(n-1,k));

return c;

}

public BigInteger getFactorial(int n) {

if(n==1 || n==0)

{

return BigInteger.valueOf(1);

}

return BigInteger.valueOf(n).multiply(getFactorial((n-1)));

}

public BigInteger C2(int n,int k)

{

return getFactorial(n).divide((getFactorial(k).multiply(getFactorial(n-k)))) ;

}

}

4.结果截图:

课后作业二

1.设计思想:

输入盘子的个数n,定义一个显示盘子移动的方法move,一个计算汉诺塔的方法hanoi,将move在hanoi里调用。Hanoi的大致算法:将one座上的n-1个盘子(借助three座)移动到two塔,改变one ,two ,three 与peg1,peg2 ,peg3的对应关系即可,递归结束条件n=1.

2.程序流程图:

3.程序源代码:

import java.util.Scanner;

public class Homework2

{

public static void main(String args[])

{

Scanner input=new Scanner(System.in);

int n;

System.out.println("输入盘子的个数:");

n=input.nextInt();

Hanoi h=new Hanoi();

System.out.println("移动过程为:");

h.hanoi(n, "peg1", "peg2","peg3");

}

}

class Hanoi

{

public void move(String x,String y)

{

System.out.println(x+"-->"+y);

}

public void hanoi(int n,String one,String two,String three)

{

if(n==1)

move(one,three);

else

{

hanoi(n-1,one,three,two);

move(one,three);

hanoi(n-1,two,one,three);

}

}

}

4结果截图:

课后作业三

 

1.设计思想:

   输入一段字符串,定义一个AboutStringPalindrome类,三个私有属性int n,int length,String str,n用来控制递归结束的条件,length为字符串的长度。定义构造函数初始化私有属性。定义boolean类型的judgePalindrome方法用来判断,定义showJudgePalindrome来输出结果。

2.程序流程图:

 

3.程序源代码:

import java.util.Scanner;

public class Homework3

{

public static void main(String args[])

{

Scanner input=new Scanner(System.in);

System.out.println("输入一个字符串:");

String str=input.nextLine();

AboutSringPalindrome a=new AboutSringPalindrome(str);

System.out.println();

System.out.print("判断结果:");

a.showJudgePalindrome();

}

}

class AboutSringPalindrome

{

private int n;

private int length;

private String str;

public AboutSringPalindrome(String str2)

{

this.n=1;

this.length=str2.length();

this.str=str2;

}

public Boolean judgePalindrome(String str,int n,int length)

{

boolean flag;

if(str.charAt(n-1)==str.charAt(length-n))

flag=true;

else

flag=false;

if(n==length/2)

{

if(str.charAt(n-1)==str.charAt(length-n))

{

return true;

}

else

return false;

}

else

return flag&&judgePalindrome(str,n+1,length);

}

public void showJudgePalindrome()

{

if(length==0||length==1)
{
System.out.println("该字符串回文");
}
else
{
if(judgePalindrome(str, n, length))
System.out.println("该字符串回文");
else
System.out.println("该字符串不回文");
}

}

}

4结果截图:

 

java作业 2017.10.14的更多相关文章

  1. 2017.10.14 Java的流程控制语句switch&&随机点名器

    今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 ###01switch语句解构     * A:switch语句解构       * a:switch只能针对某个表达式的值作 ...

  2. java课后作业2017.10.20

    动手动脑1: public class Test{ public static void main(String args[]) { Foo obj1=new Foo(); }}class Foo{ ...

  3. java作业 11.10

    package text3; import java.io.File; import java.io.IOException; import java.nio.file.Files; public c ...

  4. 2017/10 冲刺NOIP集训记录:暁の水平线に胜利を刻むのです!

    前几次集训都没有记录每天的点滴……感觉缺失了很多反思的机会. 这次就从今天开始吧!不能懈怠,稳步前进! 2017/10/1 今天上午进行了集训的第一次考试…… 但是这次考试似乎是近几次我考得最渣的一次 ...

  5. Week14《Java程序设计》第14次作业总结

    Week14<Java程序设计>第14次作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何 ...

  6. 九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <init> 严重: The ResourceConfig instance does not contain any root resource classes.

    Tomcat启动错误:九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <i ...

  7. Gitlab一键端的安装汉化及问题解决(2017/12/14目前版本为10.2.4)

    Gitlab的安装汉化及问题解决 一.前言 Gitlab需要安装的包太TM多了,源码安装能愁死个人,一直出错,后来发现几行命令就装的真是遇到的新大陆一样... ... 装完之后感觉太简单,加了汉化补丁 ...

  8. 2017.10.12 Java的计数器的开发

    //我们用一个合成的applet/application来简单显示出一个计数器的结果/** * Created by qichunlin on 2017/10/12. */ /*简单的计数器*/ im ...

  9. 2017.10.10 java中的继承与多态(重载与重写的区别)

    1. 类的继承 继承是面向对象编程技术的主要特征之一,也是实现软件复用的重要手段,使用继承特性子类(subclass) 可以继承父类(superclass)中private方法和属性,继承的目的是使程 ...

随机推荐

  1. VIM中的保存和退出

    在插入模式下按ESE键.然后按住shift别松.在按;键.进入末行模式下. 然后按wq键.就可以保存退出了.

  2. Python 爬虫的工具列表

    这个列表包含与网页抓取和数据处理的Python库 网络 通用 urllib -网络库(stdlib). requests -网络库. grab - 网络库(基于pycurl). pycurl - 网络 ...

  3. Java8函数之旅 (一) 开始认识lambda

    系列之前我想说的   最近有一段时间没写博客了,这几天回到学校,才闲下来,决定写一写最近学习到的知识,既是为了分享,也是为了巩固.之前看到过一篇调查,调查说的是学习新知识,光只是看的话,知识的获取率只 ...

  4. 关于package.json学习

    1.如果要下载npm包,必须有package.json文件,不然会报错,如果缺少必要字符报错,参考报错信息 2.license,指定用户权限,可以不写,不会报错 3.devDependencies,依 ...

  5. Pop–实现任意iOS对象的任意属性的动态变化

    简介 Pop 是一个可扩展的动画引擎,可用于实现任意iOS对象的任意属性的动态变化,支持一般动画,弹性动画和渐变动画三种类型. 项目主页: pop 最新示例: 点击下载 注意: 官方代码中,并不包含实 ...

  6. vue登录插件引来的后续问题

    上次介绍了下写的登录弹框插件,过了几天发现点击去注册或者改密码的跳转失效.报错this.$router.push is not a function,继续打印this.$router也是undefin ...

  7. linux安装openldap步骤

    目录 虚拟机环境:centos 7 一.环境准备 1.关闭 selinux firewalld 临时: setenforce 0  永久: vi /etc/sysconfig/selinux SELI ...

  8. Ado访问sqlserver 端口号非1433时 连接串的写法

    Provider=SQLOLEDB.;Persist Security Info=False;Data Source=hostName,Port //注意用 逗号分隔主机名与端口号

  9. 利用python进行坐标提取以及筛选(文件操作的小应用)

    由于目前暂时还未学习到python关于数据处理的模块方面的知识,且刚好最近朋友发来一份坐标数据文件(txt格式),让我帮他对其进行筛选, 因此利用了最近刚学过的python文件处理操作以及以前所学的基 ...

  10. SPOJ1026 概率DP

    Favorite Dice BuggyD loves to carry his favorite die around. Perhaps you wonder why it's his favorit ...