自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 二分查找法

二分法是一种非常重要的思想。二分查找法是一种比较重要的查找算法,其执行效率要比遍历查找快非常多但是其必须有一个条件是数组必须有序,具体的排序算法后面遇到再说。假设数组升序,则可以写出二分查找的算法://二分查找,假设数组升序int binary_search(int array[], int lenth, int x){//把数组和数组长度也传进来 //二分查找,找到返回下标,未找到返...

2022-05-17 17:01:18 341

原创 I/O流的简单使用

I/O简介流的概念的引入写Java程序一定会用到下面这一行代码:System.out.println("hello world");这行代码可以输出 “hello world” 在控制台上,这行代码有什么可看的呢?一共三个元素,挨个看:第一个:System,系统类,是个很有用的类,里面有一些实用的方法,这个后面会专门写一期介绍一些常用的类.第二个元素:out,这个out是什么东西呢?点进去看,可以看到它在System类里面的定义:public final static PrintStrea

2022-05-06 18:19:54 519

原创 入职技能快速了解

对于新入职的小伙伴来说,从学生到职场除了身份的转变,作为开发者,有些入职的基本技能也需要快速掌握,避免出问题.这里我列举了入职以后需要掌握的技能,避免大家入职踩坑.下列所有操作都是基于IDEA的,IDEA目前已经是最流行的IDE了.Git相关操作与个人平时的编程不同,个人可能对于git的运用没有那么多和熟练,像我自己以前学习的时候都是把git作为一个代码托管工具的.而公司一般都是团队开发,就是项目代码会有很多人去维护,因此git基本操作是必备技能,有时不慎可能会出问题.代码上传与下载进入企业以后,

2022-04-29 21:00:00 288

原创 游戏还没开始就已经输了?

我之前在手机上刷到一个视频片段:大致内容是这样:首先岳云鹏是我非常喜爱的相声演员.视频中他在某个综艺节目上需要做游戏连续赢得5个人才可以完成任务.于是他提出了一个数数的游戏,游戏规则如下:两人轮流从1开始数数,每人每次只能数1个数或者2个数,数到30的人为输.谁先数谁后数都无所谓. 然而,小岳岳却是连续赢得5个人,成功完成任务.确实,人家岳云鹏还是很聪明的.不论是连续赢得5人还是在游戏的选择上都很聪明.看到这里,其实我的内心是没有什么波澜的.怎么说呢,这个游戏其实是有猫腻的.小岳岳的5次胜利并不是

2021-01-13 19:25:17 186

原创 栈和队列

队列和栈都是一种限制输入输出的数据结构的数据结构,应用非常广泛,本篇我们来模拟实现一下基础的栈和队列的结构。1.队列队列是一种先进先出的数据结构,顾名思义,就跟我们排队时一样的,有个先来后到的顺序。它的基本限制是只允许一端输入,而另一端输出,我们一般把输入的一端叫做队尾,把输出的一端叫做队首(或者队头)。关于队列的实现一般可以使用数组或者链表等,但是也不乏存在一些变种的题目(比如基于栈实现队列)...

2020-05-20 19:04:23 219

原创 java抽象类和接口

我感觉这一块知识点不多,但是我总觉得老师们讲课的时候有点略过了,这个东西在我写代码的过程中我觉得非常重要,不过也可能是因为是SE基础吧,所以讲的没那么多。1.抽象类抽象类也是一种类,跟普通的类差不多,但是它既然单独叫抽象类,那么还是有点跟普通的类不一样的地方的。前面我们将客观事物进行公共属性的提取形成类,而在这一层次上将几个类再次抽象,以至于它都没有具体的实例了,那么这个类就是抽象类,比如常...

2020-05-01 19:23:07 172

原创 Java继承和多态

其实这几个名词之间都是有关联的,前面解释了类和对象,这节来说继承和多态。

2020-04-10 02:30:25 218

原创 Java类和对象

虽然我觉得写基础JavaSE好像已经作用不大了,但是类和对象又是Java中最重要的东西,而且这一块其实有些地方还是有点绕的。而且就我的经验来看,我在学校期间老师在讲这一块的时候本来就很模糊。现在回过头来看看,虽然现在对于类和对象有了更进一步的认识,但是对于有些不是很清楚的小伙伴们说一说还是很有用的,而且经过自己的系统总结还会有更多的体验。这一块一共要说三个部分:类和对象,继承和多态,抽象类和接口...

2020-04-04 02:12:37 165

原创 顺序表和链表

1.顺序表顺序表也叫线性表,是一种线性的存储结构,在C和Java里,顺序表其实就是数组。而这也是编译器已经给我们包装好的,直接拿来用就可以了。尽管如此,数组虽然随机访问比较快,但是对于增删查改等有的操作仅仅靠数组本身是不能完成的,因此,我们还需要对现有数组类型进行包装。完成以下功能:package SeqList;public class SeqList { //顺序表长度初始化为...

2020-03-15 17:31:13 287

原创 迷宫问题

从此篇开始讲述数据结构与算法的相关知识与应用。走迷宫问题是一个比较经典也比较常见的问题,这里使用递归加回溯的思路解题。下面是我准备的迷宫(用word画的):说明:这是一个8*8的表格,我们用二维数组存储(char[][] map),其中,左上角起点坐标为(1,1),右下角终点处的坐标为(6,6)。灰色阴影部分作为墙是不能走的,白色部分表示可走。墙体我们用 * 表示,走完后我们用字符 0 标...

2020-02-25 19:07:23 208

原创 程序结构(逻辑控制)

1.顺序结构#include<stdio.h>int main(){ printf("hello word !\n");//程序从上而下依次按顺序执行 printf("你好\n"); // return 0;}2.选择结构#include<stdio.h>int main(){ printf(""); return 0;}...

2020-02-23 16:43:55 625

原创 原码反码和补码

原码,补码和反码这些东西属计算机基础的知识,这里简单说一下。计算机的数据类型在大的方向上可分为整数和浮点数,而整数和浮点数在计算机中的存储方式是不一样的。浮点数的存储方式比较复杂,这里先不说,现在主要谈谈整数的存储。前面说了,计算机是二进制的机器,是按照二进制的补码方式存储数据的。那么,补码是什么呢,怎么计算呢?首先来说原码:以下为了表述方便,使用一个字节长的数据进行举例。一般来说,计算机...

2020-01-26 17:19:04 286

原创 操作符详解

1.基本操作符+ - * / % =重点说一下“/”和“%”还有“=”。“/”(除)左右两边都为整数时执行整除,有一个浮点数时执行除法运算。“%”(取余,也叫模运算,取模)只能用于整数运算。要特别注意的是“=”不是等于号,虽然看起来和数学里的等于号一模一样。比如a=3,严格的理解是把a赋值3或者是把3赋值给a。C语言里的等于号是“==”,一般用于条件判断。2.位操作符& ^ | ...

2020-01-20 15:32:27 228

原创 递归的应用(汉诺塔)(青蛙跳台阶)

1.斐波那契数列斐波那契数列相信大家都已经不陌生了,笔者第一次了解到这个数列的时候是从兔子繁殖的问题引入进来的,但是,关于斐波那契数列的研究远不止于此,感兴趣的朋友可以去百科上查看一些与之相关的话题。这里我们主要进行的主题是斐波那契数列的第n项求值问题,先来看一下这个数列的前几项:1,1,2,3,5,8,13,21,34……这个数列的特性也很明显,即前两项都是1,此后,后一项都是前两项之和,为了...

2019-12-31 13:58:07 433 2

原创 Java入门

前面停更了很长时间,事情有点多又有点忙,也不知道该写一些什么东西,前面C语言的东西呢,以后可能就不谈了,以后转到Java方向了,所以呢,以后开始学习Java。Java呢其实是比C/C++要简单一点的,关注点大多在应用层,这一点也比较符合我性格。其他的就不多解释了,进入正题。Java简介什么历史啊,背景啊这些我就不再多说了,我觉得讨论这个没有意义,等以后真正的变成大佬了再回过头来讨论它的辉煌历史...

2019-12-28 20:38:04 68

原创 回文字符串的判断

“回文”指的是一个字符串从前往后读和从后往前读都是一样的,则称这个字符串为回文。比如“qwerewq”是一个回文字符串,“gda534”则不是回文串。在数据结构中,可以通过使用“栈‘这种数据结构来实现,这里单从C语言的语法层面上来实现它。#include<stdio.h>#include<string.h>#include<windows.h>#incl...

2019-12-11 20:27:47 3216

原创 字符串中字符的移位&&调整数组使奇数全部都位于偶数前面。

1.调整字符串中的字符,使字符循环左移或者循环右移比如一个一个字符串为“ABCDE”,其所有字符右移一位为“BCDEA”,右移三位为“DEABC”。写一个函数使其移动k个单位。先来看看移动一个字符怎么移动:void move_one(char arr[]){//移动一个字符时的情况 int len = strlen(arr);//字符串长度 char tmp = arr[len - 1]...

2019-11-21 19:05:08 343

原创 C语言实现的超硬核五子棋

在前面三子棋的基础上,延申到五子棋的实现。事实上,前面三子棋的判断算法实际上是采用了一种穷举的方法,因为三子棋也就总共只有9个点,穷举的方法其实是可以的,很容易就能实现,也不容易出问题,而在五子棋这块显然用穷举法就不行了,至少五子棋的棋盘要大得多,所以得另想办法。废话不多说,正所谓“talking is cheap,show me your code”。直接上代码一个头文件,两个源文件头文件"...

2019-11-19 12:45:31 557

原创 累死电脑的逻辑推理题?????????

1.5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。 *///信息数字化,abcde代表五位选手,12345代表他们的名次A:b=2,a=3B : b=2,e=4C: c=1,d=2D...

2019-11-10 00:28:13 299

原创 C语言实现的超硬核扫雷

和扫雷规则一样,行数列数和雷的数量可以通过改变外部宏定义来改变,第一次扫雷绝对安全,但是能力有限,只能通过输入坐标的方法来一步一步扫雷,若周围没有雷则可以实现展开,暂时不能提供有雷标记功能,非常硬核,只能排除没有雷的点,所有安全位置全部显示出来后即通关。头文件mine_clear.h,包括一些库函数的引用和自定义函数的声明以及宏定义。#ifndef __MINE_CLEAR_H__#defi...

2019-11-04 22:55:00 382

原创 三子棋

我觉得三子棋其实就是五子棋的迷你版,只不过棋盘只有3*3,所以写起来也是非常的简单粗暴(穷举法)电脑也是个智障(没有算法,只能随机的找空格胡下)。(暂时没有增加两个玩家之间对弈的)。首先头文件chess.h#ifndef __chess_h__#define __chess_h__#include<stdio.h>#include<windows.h>#inc...

2019-10-30 22:15:34 141

原创 递归和循环迭代

通常,一个函数在执行过程中通过直接或间接的方式调用本身的过程称之为递归,其核心思想是将大问题逐步分解为一个个子问题,子问题与原问题具有相同的解法。递归包含两个要点,一个是递归方式,一个是函数出口(即问题的最小规模),然后逐层次的解决问题。递归和循环在某些方面是差不多的,比如递归要重复的调用本身。在大多数情况下,递归比循环更耗费时间和空间,然而递归代码更简单。但是在有些情况下循环是解不出问题的,比如...

2019-10-25 19:51:26 298

原创 简单的猜数字游戏

创建一个默认的账户名和密码,3次输入机会,3次输错则不进入游戏。进入菜单界面后请选择游戏或者退出。进入游戏后计算机先生成一个1到100的随机整数(当然这个范围可以自己在代码里更改)提示用户输入,若比随机数大则提示猜大了,再猜一次,比随机数小则提示猜小了,再猜一次,直至猜对。得分+1当然也可以有更多规则限制和更改。主体代码类似下面这样:#include<stdio.h>#inc...

2019-10-24 14:07:15 226

原创 前面一些内容的更正和补充

1.用函数实现数值交换//函数实现两个数的值交换#include<stdio.h>//函数在进行值传参的时候只会对函数内部形成的临时变量起作用,比如用下面方法是不能交换两个变量的值的/*void swap(int a,int b){ int temp = a; a = b; b = temp;}*///必须借助指针实现void swap(int *pa,int *p...

2019-10-23 20:05:41 85

原创 一些数学简单的数学计算

1.计算1/1-1/2+1/3-1/4+…+1/99-1/100.#include<stdio.h>int main(){ float sum = 0.0; float n = 1.0; float m = 1.0; int i = 1; for(;i <= 100;i++){ sum += m * 1 / n; m = -m; n += 1; } ...

2019-10-12 18:41:41 344

原创 C语言基础知识回顾——数据类型

系统:windows10家庭和学生版环境:Miccrosoft Visual Studio 2013#include<stdio.h>#include<string.h>#include<windows.h>int main(){//按所占空间大小依次为:printf("char: %d 字节\n\n",sizeof(char)); //字符型 ...

2019-10-02 22:13:10 115

原创 关于两个数值交换

一般在初学一门编程语言的时候就会接触到两个数值交换的问题,这一点在以后的编程中会经常用到,比如一些排序的程序中或者是类似前面的计算最大公约数等等,因此数值交换是编程最基本也是最重要的,这里陈述两种方法:1.使用中间变量来暂时的存储一个变量的值,这一点很容易理解,也很容易实现,代码类似这样:以下代码在Windows10环境下使用VS2013编译和执行#include<stdio.h>...

2019-10-01 14:28:34 230

原创 最大公约数之更相减损术

简介:更相减损术出自我国著名算数书《九章算术》,原本是用于分数的约分,后多用来计算两个整数的最大公约数。具体步骤:第一步:给定两个正整数,判断是否为偶数,若是则用2简约,否则执行第二步。第二步:以较大的数减去较小的数,得到差,将差与减数比较,再用大数减去小数,重复此操作,直到减数与差相等,这个等数乘第一步约去的若干个2则为最大公约数。由于现代计算机的发展,计算减法相对来说比计算除法更快,...

2019-09-30 18:40:32 2785

原创 辗转相除法求最大公约数

辗转相除法又称为欧几里得算法,是用来求两个整数的最大公约数的,其过程是先用大数除去小数得到余数,若余数为0则除数为最大公约数,余数不为0则将上一轮的除数作为被除数除余数,再判断余数,若为0 则除数为最大公约数,否则重复上述操作,直到余数为0,则最后一个除数就是最大公约数。代码如下:int a,b,m,n; printf("输入两个数字:\n"); scanf("%d %d",&a,...

2019-09-29 12:47:16 12194

原创 九九乘法表

#include<stdio.h> //打印输出九九乘法表int main(){ int i,j; //两个乘数 for(i = 1;i<10;i++){ //外层 for(j = 1;j<=i;j++){ //第二个乘数跟随外层的变化 printf("%d*%d = %d ",j,i,j*i); } printf("\n"); ...

2019-09-28 01:33:00 71

原创 素数的判定

输出m到n之间的素数//直接上代码吧//C语言实现#include<stdio.h>//先来写一个函数判断一下是不是素数int isPrime(int x) //C 语言没有提供布尔型变量,这里我们用int型代替,真返回1,假返回0{ if(x == 0) return 0; //0是不是素数?思考素数的定义 if(x == 1) return 0;...

2019-09-27 22:14:48 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除