课程作业1

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

a.设计思想

定义n和k,用递归函数表示出N!的阶乘结果,c(n,k)=n!/(k!(n-k)!);调用函数求出c(n,k)的结果

b.源代码

package kecheng1;
import java.util.Scanner;
public class Test
{public static void main(String[] args) {System.out.print("请输入N:");Scanner s=new Scanner(System.in);int n=s.nextInt();System.out.print("请输入:k") ;int k=s.nextInt();System.out.println(n+"!="+ca(n));double x=ca(n)/(ca(k)*ca(n-k));System.out.println(x);}public static long ca(int n) {if(n==1 || n==0){return 1;}return n*ca(n-1);}//递归函数
}

c.流程图

d.结果截图

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

a.程序设计思想

利用递推的方法和杨辉三角计算出组合数的结果,将输入的变量NK表示为杨辉三角的行和列,利用二位数组具体求出杨辉三角的数值,最后输出需要的组合数的数值

b.源代码

package kechengab;import java.util.Scanner;
public class Dituiyh 
{public static void main(String[] args){Scanner put=new Scanner(System.in);System.out.println("输入行:");int x=put.nextInt();System.out.println("输入列:");int y=put.nextInt();if(y>x)System.out.print("输入的数据错误");int [][]a=new int[6][6];for(int i=0;i<=x;i++){for(int s=0;s<=i;s++){if(s==i||s==0)a[i][s]=1;else{a[i][s]=a[i-1][s-1]+a[i-1][s];}}}//利用二维数组杨辉三角的表示System.out.println("组合数c(x,y)的值为"+a[x][y]);//输出要求的值
    }}

c.程序流程图

d.结果截图

3.汉诺塔

a.程序设计思想

调用递归函数,终止条件为参数N=1;移动盘子时,利用两个函数,将盘子移动,利用中间的b柱子作为跳板,递归函数求出具体步骤,引用另一个函数具体输出盘子移动的步骤

b.程序源代码

package hannuota;
import java.util.Scanner;
public class Peg 
{static private int n = 0;public static void main(String[] args) {Scanner in = new Scanner(System.in);char one = 'A';char three = 'B';char  two= 'C';System.out.println("输入盘子数");int num = in.nextInt();  hanni(num,one,three,two);in.close();}private static void move(int num,char start,char end){n=n+1;System.out.println(n+"步操作盘子从:"+start+"-->"+end);}//函数表示出具体的盘子移动的方法private static void hanni(int num,char one,char three,char two) {if(num==1){move(1,one,two);}else{hanni(num-1,one,three,two);move(num,one,two);                 hanni(num-1,three,one,two);}}//递归的方法求出盘子移动轨迹}

c.流程图

d结果截图

4.回文数

a程序设计思想

定义字符串储存想要的验证的字符串,定义一个数组储存,将两个数组首尾进行比较,结束条件为比较到数组的中值处

b.源代码

package huiwen;import java.util.Scanner;public class Dihuiwen
{public static void main(String[] args) {Scanner put =new Scanner(System.in);System.out.println("输入字符串:");String a = put.nextLine();//定义字符串char[] ch = new char[a.length()];for(int i = 0;i<a.length();i++){ch[i] = a.charAt(i);}//将字符穿赋值给数组if(zifu(ch,ch.length)==0)//引用函数体
        {System.out.println("该字符串不是回文!");}else{System.out.println("该字符串是回文!");}//
        put.close(); }private static int zifu(char[] c,int i) {int size = c.length;if(i == size/2){return 1;}if(c[size - i] == c[i-1]){return zifu(c,i-1);}elsereturn 0;} //递归函数判断字符串是否为回文数
}

c.流程图

d.结果截图

 

 总结

该课程主要练习了递归函数以及随机数的运用,虽然完成了部分课题,但是自我感觉对于随机数的运用,以及对于递归函数掌握还没有到达非常熟练的地步,在以后的练习中,自己还需要对这两方面内容进行更加全面的认识以及掌握。

 

转载于:https://www.cnblogs.com/xuzhaoyang/p/7663877.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新手学Python推荐的四本书籍+2个资源网站

2019独角兽企业重金招聘Python工程师标准>>> 很多伙伴初学Python&#xff0c;会问到&#xff1a;有没有好的学习书籍推荐&#xff1f;有没有好的学习网站推荐&#xff1f; 针对这类伙伴的问题&#xff0c;小优给大家整理了学习Python的四本书籍2个资源网站&#xff…

【转】Linux系统编程---dup和dup2详解

正常的文件描述符&#xff1a; 在linux下&#xff0c;通过open打开以文件后&#xff0c;会返回一个文件描述符&#xff0c;文件描述符会指向一个文件表&#xff0c;文件表中的节点指针会指向节点表。看下图&#xff1a; 打开文件的内核数据结构 dup和dup2两个函数都可以用来复制…

Java -----JVM运行时数据区

一、JVM体系结构 想要了解运行时数据区&#xff0c;先关注一下JVM的体系结构&#xff0c;知道数据区在JVM的整体位置和作用。 二、JVM运行时数据区 1.程序计数器 一块较小的内存空间&#xff0c;它是当前线程所执行的字节码的行号指示器&#xff0c;字节码解释器工作时通过改变…

20155235 《网络攻防》 实验八 Web基础

20155235 《网络攻防》 实验八 Web基础 实验内容 Web前端HTML(0.5分) 能正常安装、启停Apache。理解HTML&#xff0c;理解表单&#xff0c;理解GET与POST方法,编写一个含有表单的HTML。Web前端javascipt(0.5分) 理解JavaScript的基本功能&#xff0c;理解DOM。编写JavaScript验…

【每周一图】蜂鸟

摄影/祈澈姑娘小花园偶遇的一只蜂鸟转载于:https://www.cnblogs.com/wangting888/p/9702088.html

API网关如何实现对服务下线实时感知

上篇文章《Eureka 缓存机制》介绍了Eureka的缓存机制&#xff0c;相信大家对Eureka 有了进一步的了解&#xff0c;本文将详细介绍API网关如何实现服务下线的实时感知。 一、前言 在基于云的微服务应用中&#xff0c;服务实例的网络位置都是动态分配的。而且由于自动伸缩、故障和…

反射笔记-----------------------------

1.反射基本概念&#xff1a; 01.定义&#xff1a; 反射是指在程序运行期间&#xff0c;能够观察和修改类或者类的对象的属性和行为的特性&#xff01; 02.作用&#xff1a; 001.在运行期间获取类的修饰符&#xff0c;包名&#xff0c;类名&#xff0c;实现的接口&#xff0c;继…

kubernetes 集群部署

kubernetes 集群部署 环境JiaoJiao_Centos7-1(152.112) 192.168.152.112JiaoJiao_Centos7-2(152.113) 192.168.152.113JiaoJiao_Centos7-3(152.114) 192.168.152.114已开通 4C8G80G 集群规划 部署方式 环境准备&#xff1a;基于主机名称通信&#xff0c;时间同步&#xff0c;关…

wordpress 显示数学公式 (MathJax-LaTeX)

blog 不放一堆数学公式怎么能显得高大上&#xff0c;所以 MathJax-LaTeX 也是必装的插件之一了。 一、安装 MathJax-LaTex 插件 直接在 wordpress 插件中&#xff0c;搜索并安装 MathJax-LaTeX 二、安装本地 MathJax 服务 不过由默认的 MathJax cdn 服务经常被墙&#xff0c;所…

ConstraintLayout

ConstraintLayout使用笔记 具体使用参考&#xff1a;http://blog.csdn.net/guolin_blog/article/details/53122387 ConstraintLayout 好处还是很明显&#xff0c;确实可以减少嵌套。性能对比参阅&#xff1a;http://www.cnblogs.com/liujingg/p/7161319.html 简单嵌套Constrain…

python(5)- 基础数据类型

一 int 数字类型 #abs(x)      返回数字的绝对值&#xff0c;如abs(-10) 返回 10 # ceil(x)    返回数字的上入整数&#xff0c;如math.ceil(4.1) 返回 5 # cmp(x, y)    如果 x < y 返回 -1, 如果 x y 返回 0, 如果 x > y 返回 1 # exp(x)…

基于HTK的语音拨号系统

为什么80%的码农都做不了架构师&#xff1f;>>> 基于 HTK 的语音拨号系统 Veket NWPU 2011-6-22 目标&#xff1a; 该系统能够识别连续说出的数字串和若干组姓名。建模是针对子词&#xff08; sub-word,eg.. 音素&#xff09;&#xff0c;具有一定的…

MySQL无法重启问题解决Warning: World-writable config file '/etc/my.cnf' is ignored

为什么80%的码农都做不了架构师&#xff1f;>>> 今天帮朋友维护服务器&#xff0c;在关闭数据库的命令发现mysql关不了&#xff0c;提示Warning: World-writable config file /etc/my.cnf is ignored &#xff0c;大概意思是权限全局可写&#xff0c;任何一个用户都…

用户体验分析: 以 “南通大学教务管理系统微信公众号” 为例

基于实例分析&#xff0c;体会用户体验设计的 7 条准则&#xff0c;分析“南通大学教务管理系统微信公众号” 在用户体验设计方面让你觉得满意的地方&#xff08;不少于2点&#xff09;&#xff1b;&#xff08;20分&#xff09;&#xff0c;请陈述理由。 同样&#xff0c;分析…

JVM学习笔记(一):Java内存区域

由于Java程序是交由JVM执行的&#xff0c;所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前&#xff0c;先来看一下Java程序具体执行的过程&#xff1a; 首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀)&am…

EdgeRouter X设置外网远程访问和HTTPS连接指定出口网关

EdgeRouter X虽然小巧&#xff0c;但功能强大&#xff0c;为方便远程管理&#xff0c;必须对防火墙进行设置&#xff0c;允许从外部进行访问&#xff0c;由于公网的80、443端口都已被运营商关闭&#xff0c;必须设置端口转发才能从外部访问。一、设置外网远程访问通过浏览器进入…

CSV出力ボタンラッパー(asp.net)[イベントの作り方に役立つ]

为什么80%的码农都做不了架构师&#xff1f;>>> /// <summary> /// CSV出力ボタンラッパー。 /// </summary> public class CsvOutputButtonWrapper { /// <summary> /// CSV出力ボタン /// </summary> …

项目UML设计(团队)

团队信息 队名&#xff1a;massivehard 组长&#xff1a;晓辉 队员&#xff1a;一飞&#xff0c;帅珍&#xff0c;斌豪&#xff0c;锦谋 团队分工 模块序号模块名模块具体内容1日记编辑添加随笔2照片选择选择照片识别3消息模块收发消息4个人信息账号&#xff0c;密码等负责人分…

安装asp.net mvc4后mvc3项目编译报错

为什么80%的码农都做不了架构师&#xff1f;>>> 安装asp.net mvc4之后&#xff0c;之前的mvc3项目编译时报这个错“The type System.Web.Mvc.ModelClientValidationRule exists in both c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.M…

POJ 3608 Bridge Across Islands 《挑战程序设计竞赛》

为什么80%的码农都做不了架构师&#xff1f;>>> POJ 3608 Bridge Across Islands跨岛大桥&#xff1a;在两个凸包小岛之间造桥&#xff0c;求最小距离&#xff1f;3.6与平面和空间打交道的计算几何 凸包 这题原始数据已经是凸包&#xff08;convex polygons&#x…