java 二进制反码_Java学习第五篇:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题...
public classDemo3 {public static voidmain(String[] args) {
CycleLinkList cycleLinkList=newCycleLinkList();
cycleLinkList.setCycleLinkListLength(10);
cycleLinkList.initCycleLinkList();
cycleLinkList.Josephu(4, 6);
}
}/*** 节点结构*/
classNode {//编号
private intnumber;//指向下一个节点的引用
private Node nextNode=null;//构造函数
public Node(intnumber) {this.number=number;
}//设置nextNode节点
public voidsetNextNode(Node nextNode) {this.nextNode =nextNode;
}//得到nextNode节点
publicNode getNextNode() {returnnextNode;
}//得到编号
public intgetNumber() {returnnumber;
}
}/*** 循环链表*/
classCycleLinkList {//链表的长度
private int length=0;//指向链表头结点的引用
private Node firstNode=null;/*** 设置链表的长度
*@paramlen 链表长度*/
public void setCycleLinkListLength(intlen) {this.length=len;
}/*** 初始化循环链表*/
public voidinitCycleLinkList() {//定义一个临时节点
Node tempNode=null;for(int i=1;i<=length;i++) {//头节点
if(1==i) {
Node headNode=newNode(i);this.firstNode=headNode;
tempNode=headNode;
}else{//尾节点
if(length==i) {
Node node=newNode(i);
tempNode.setNextNode(node);
tempNode=node;//将尾节点的nextNode引用指向链表的头节点firstNode
tempNode.setNextNode(firstNode);
}else{ //其它节点
Node node=newNode(i);
tempNode.setNextNode(node);
tempNode=node;
}
}
}
}/*** 打印循环链表*/
public voidprintCycleLinkList() {
Node tempNode=this.firstNode;do{
System.out.println(tempNode.getNumber());
tempNode=tempNode.getNextNode();
}while (tempNode!=this.firstNode);
}/*** 约瑟夫问题
*@paramk 从第k个人开始报数
*@paramm 数m下*/
public void Josephu(int k, intm) {//判断k的合法性
if( !(k>=1 && k<=this.length) ) {
System.out.println("传入的k不正确");
System.exit(-1);
}//定义一个临时节点
Node tempNode=this.firstNode;//先找到第k个人
for(int i=1;i
tempNode=tempNode.getNextNode();
}//数m下,将数到m的节点从循环链表中删除//有两种情况需要考虑,//第一种:m=1的情形//第二种:除了第一种的特殊情况,其他的只要找到数到m节点的的前一个节点即可,即数m-1下//第一种情形
if(1==m) {//从当前节点依次输出出队序列
int len=this.length;while( (len--)>0) {
System.out.println(tempNode.getNumber());
tempNode=tempNode.getNextNode();
}
}//第二种情形
else{//记录出队的节点数
int cnt=0;do{//数(m-1)下
for(int j=1;j
tempNode=tempNode.getNextNode();
}//出队的节点
System.out.println(tempNode.getNextNode().getNumber());//记录出队的节点数
cnt++;//删除数到m的节点
Node tempNode2=tempNode.getNextNode().getNextNode();
tempNode.setNextNode(tempNode2);//更新tempNode,从数到m的人下一个开始报数
tempNode=tempNode2;
}while (cnt!=this.length);
}
}
}
java 二进制反码_Java学习第五篇:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题...相关推荐
- 【程序员必修数学课】-基础思想篇-二进制-原码反码补码的数学论证
二进制计数法&原码&反码&补码 Ⅰ 前言 Ⅱ 二进制计数法 A. 什么是二进制计数法? B. 为什么要使用二进制? C. 二进制的位运算 D. 符号位 E. 溢出 Ⅲ 原码&a ...
- 二进制原码反码补码详解
二进制原码反码补码 首先我们在了解什么是原码,反码,补码之前,我们先来谈谈为什么需要有这些,只要原码不行吗? 答案肯定是不行的!
- 二进制 原码 反码 补码
1.原码,反码和补码概念 正数:原码.反码.补码相同: 以123为例: 原码:01111011 反码:01111011 补码:01111011 负数的原码:为取绝对值的数转二进制,然后符号位加一: 负 ...
- 负数的二进制 原码反码补码
https://blog.csdn.net/weixin_38296030/article/details/88353914 问题来源: "为毛 -x=!x+1 ??? 其中x为一任意 ...
- 【实验作业】微处理器原理与应用 CPUHomework2.1【二进制 原码 反码 补码 数制转换 典型例题】
一.选择题 1.一个四位二进制补码的表示范围是(B) A.0-15 B.-8-7 C.-7-7 D.-7-8 2.十进制数- 48 用补码表示为(B) A.10110000 B.11010000 C. ...
- Java修炼之凡界篇 筑基期 第02卷 语法 番外1 原码 反码 补码
原码 反码 补码 博客整理自 原码, 反码, 补码 详解 - ziqiu.zhang - 博客园 (cnblogs.com) 机器数与真值 在学习原码.反码和补码之前,需要先了解什么是机器数,什么是真 ...
- java进制原码_Java 一一 进制、原码 反码 补码、移位操作
进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...
- 【软考学习2】数据表示——原码 反码 补码 移码
原码 反码 补码 移码是软考必考的项目,所以需要对其概念.计算方式和取值范围进行总结. 零.使用场景 原码 反码 补码 移码都是计算机中表示数据的方式,各有所长,对于我们来说,都需要加以学习. 软考中 ...
- day017:Java进制转换、原码反码补码、位运算、位移运算符
一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...
最新文章
- linux普通文件的特点是,linux系统文件系统上有哪些特点
- HTML系列(七):多媒体
- Matlab中 pdist 函数详解
- 如何使用新的Apache Http Client发出HEAD请求
- 自由响应和强迫响应和零输入零状态_零偏移有源低通滤波器,第1部分
- python基础学习笔记第二天 内建方法(s t r)
- Java反序列s ysoserial Spring
- python最适合做什么-python适合做什么开发_python未来发展怎么样
- C#基础概念面试题(更新中)
- 【全网世界区划最全整理输出之第二部分】全世界所有国家的行政区划整理,省市信息,已按照国家,省,市排好序,可直接复制使用,第二部分到8167行,总条数:21088
- 【VUE】vue程序设计----模仿网易严选
- 《GAMES104-现代游戏引擎:从入门到实践》-05 学习笔记
- 谷歌浏览器刷新快捷键
- Spring Boot Actuator自定义健康检查
- 千兆光模块如何与交换机搭配使用?
- 微信小程序调取微信支付遇到的问题“商户号该产品权限未开通,请前往商户平台产品中心检查后重试”
- python20培训班
- LTE网络-EPC(分组核心网)
- Kibana的安装与使用
- 计算机网络第七版答案(谢希仁)
热门文章
- win10安装中国蚁剑
- 脑电图伪差去除matlab,脑电图伪差的识别方法.ppt
- hikari数据源配置类_Spring中的“多数据源”之详解
- 开关电源仿真与设计基于spice 第2版 中译本_新书推荐 开关电源控制环路设计Christophe Basso 著...
- 脚本运行显示服务器超时,java执行shell脚本超时
- c语言 文件f指针,C语言文件选择题
- python操作memcahed
- [iOS]利用通知实现监听系统键盘
- iframe标签 父子页面传值
- Android中基于Socket的网络通信