课程作业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两个函数都可以用来复制…

Android Activity标签属性

Android Activity标签属性 Activity 是 Android 系统四大应用组件之一&#xff0c;用户可与 Activity 提供的屏幕进行交互&#xff0c;以执行拨打电话、拍摄照片、发送电子邮件等操作开发者必须在清单文件中声明要使用的 Activity&#xff0c;这样系统才能访问它。声明方式是在…

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验…

python每天1道面试题(3)--字符串组合

""" 题目3&#xff1a;输入一个字符串&#xff0c;输出该字符串中字符的所有组合。举个例子&#xff0c;如果输入abc&#xff0c;它的组合有a、b、c、ab、ac、bc、abc。解题思路: 先用列举法,举例出组合元素长度分别是1,2,..,len(str)时的具体元素, 然后发现当数…

【每周一图】蜂鸟

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

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

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

TCP为什么要三次握手和四次挥手

http://www.jellythink.com/archives/705 简析TCP的三次握手与四次分手 https://zhuanlan.zhihu.com/p/24001696 计算机网络面试题 https://www.zhihu.com/question/36930631 TCP四次分手中&#xff0c;主动关闭方最后为什么要等待2MSL之后才关闭连接&#xff1f; http://ww…

Java处理文件BOM头的方式推荐

背景&#xff1a; java普通的文件读取方式对于bom是无法正常识别的。 使用普通的InputStreamReader&#xff0c;如果采用的编码正确&#xff0c;那么可以获得正确的字符&#xff0c;但bom仍然附带在结果中&#xff0c;很容易导致数据处理出错。另外&#xff0c;对于存在BOM头的…

封装svg组件

如何封装svg图标组件 封装svg图标组件的方法有很多种&#xff0c;如果只是单纯的想使用svg图标&#xff0c;可以将svg导出fonts字体图标使用&#xff0c;但这样做会失去svg原有的样式与尺寸&#xff0c;也可以当成img图片或者背景引入&#xff0c;但这样做非常繁琐。 最近项目中…

RabbitMQ 延迟队列,消息延迟推送

应用场景 目前常见的应用软件都有消息的延迟推送的影子&#xff0c;应用也极为广泛&#xff0c;例如&#xff1a; 淘宝七天自动确认收货。在我们签收商品后&#xff0c;物流系统会在七天后延时发送一个消息给支付系统&#xff0c;通知支付系统将款打给商家&#xff0c;这个过程…

windows Navicat Premium连接oracle

需要下载并指定Instant Client 下载地址&#xff1a;在oracle官网搜索Instant Client Downloads选择自己需要的客户端 //说明 //Navicat 版本 9 或以上捆绑了 instant client&#xff0c;但是捆绑的用不了&#xff0c;捆绑的10.2。因此下载高版本替换之 //版本有要求&#xff0…

关于arraylist的扩容机制

ArrayList会自动改变size的长度&#xff1a; 首先&#xff0c;ArrayList定义了一个私有的未被序列化的数组elementData&#xff0c;用来存储ArrayList的对象列表&#xff08;注意只定义未初始&#xff09;&#xff1a;private transient Object[] elementData;   其次&am…

不同级别UI设计师的区别有哪些?

不同等级的UI设计师在工作内容以及基本的薪资待遇方面也是有区别的&#xff0c;很多在UI培训学校学习的小伙伴们并不知道各个等级的UI设计师工作内容有什么差别&#xff0c;那么合肥学码思小编就给大家总结一下这些区别分别表现在哪些方面。 一、初级UI设计师 初级UI设计师的主…

Linux命令行参数前加--,-和不加杠

参数前“-”的表明后面的参数是字符形式。参数前“--”的则表明后面的参数是单词形式。参数前有横的是System V风格。 参数前没有横的是BSD风格。 转载于:https://www.cnblogs.com/YYRise/p/9090476.html

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

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;关…

PHP学习笔记--抽象类和抽象方法的应用

抽象类** 什么是抽象方法&#xff1f;** 定义&#xff1a;如果一个类中的方法&#xff0c;没有方法体的方法就是抽象方法(就是一个方法没有使用{}而直接使用分号结束)* * abstract function test(); //抽象方法* * function test(){ //有方法体…

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

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