自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MD5模拟

MD5签名,是一种对信息摘要的数字签名算法,或者说是一种hash算法。数字签名数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。 是一种类似写在纸上的普通的物理签名 ,比如合同签名。数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。...

2019-08-19 21:54:26 400

原创 欧几里得算法证明

欧几里得算法,也叫做辗转相除法,gcd(a, b) = gcd (b, a%b),即a和b最大公约数等于b和a%b的最大公约数。相信大家都会用,但是很多人不知道为什么,我也看了很多文章,写的都不太相同,这里我说说我自己的证明过程: 这里的证明我分为两步求证: 1.求证:a和b的公约数等于b和a%b的公约数; 2.求证:b和a%b的公约...

2019-08-16 10:21:04 3464 3

原创 最大连续和 --- 牛客笔试题

今天在牛客上看到这道题,理解过程中总结了一些经验,在此来分享一下:分析:(1).这些元素都是负数:这个连续子数组只有一个数,连续最大和是最大的负数; eg: -1 -2 -3 -4 -5 连续最大子串:{-1} sum = -1(2).这些元素都是正数:这个连续子数组是所有元素组成的集合,连续...

2019-07-25 18:10:04 285

原创 vs2017中添加boost库

首先下载boost库,这里提供boost_1_58_0的下载:链接:https://pan.baidu.com/s/1sqhDoRZRjNFXMi-Wl9FAyQ提取码:l3lk下载完成后进入vs2017,新建项目,随便添加一个源文件,然后在vs选项框中找项目--->属性--->c/c++--->常规--->附加包含目录在里面编辑,找到你安装boos...

2019-07-23 12:21:53 2242 1

原创 RSA加解密

1.基本介绍 提到加密技术,就不得不提起加密技术的分类,加密技术通常分为两大类,对称式加密和非对称式加密。 对称式加密指的是加密和解密使用同样规则(简称"密钥")的一种加密方法,这种加密方法由于要使用相同的密匙,传递密匙的安全性成为一个问题。所以就出现了非对称式加密: 非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公...

2019-07-23 11:36:23 595

原创 RSA加解密(优化---大数加密)

上一篇博客已经简单的完成了RSA加密,建议看完上一篇博客再来查看本文章: https://blog.csdn.net/Watery________1314/article/details/96719658 这次我们将对之前的简单加密进行优化,实现大数加密,还有一部分性能优化。 首先要添加外部依赖库boost库,具体添加库方法请见:...

2019-07-23 11:36:11 2435 1

原创 Linux --- 如何去除press enter or type command to continue

来到这里相信都是对vim配置进行了一定的修改,这里我分享一下自己的亲身经历:(本人使用的是Centos7)用vim开文件后,出现了Press ENTER or type command to continue,完了我也搜索了一些,奈何都是一些花里胡哨,看不懂在说什么,这里我将我的出错原因和解决方法分享一下,如果和我一样的话希望可以帮到你。首先,$su root切换到root用户下,如果本...

2019-07-15 16:20:41 25696

原创 (有头节点循环)双链表的基本操作

我们对此分为三个文件,两个源文件DList.c  main.c 和一个头文件SList.hDList.h 中用来包含头文件,定义结构体,和对函数的声明;DList.c 中写对函数的实现; main.c 中是主函数和测试函数 "DList.h"#pragma once#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>...

2018-12-09 22:53:33 423

原创 (无头结点不循环)单链表基本操作

我们对此分为三个文件,两个源文件SList.c  main.c 和一个头文件SList.hSList.h 中用来包含头文件,定义结构体,和对函数的声明;SList.c 中写对函数的实现; main.c 中是主函数和测试函数 "SList.h"#pragma once#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h&gt...

2018-12-03 00:05:30 325

原创 顺序表的操作功能大全

       我们对此分为三个文件,两个源文件SeqList.c  main.c 和一个头文件SeqList.h。       SeqList.h 中用来包含头文件,定义结构体,和对函数的声明;SeqList.c 中写对函数的实现; main.c 中是主函数和测试函数。       "SeqList.h" #pragma once#define _CRT_SECURE_NO_...

2018-12-02 19:16:08 290

原创 剖析一级指针和二级指针

        首先我们要理解指针这个概念,那么什么是指针呢?        指针是编程语言中的一个对象,利用地址,它的值直接指存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。        总而言之,指针就是用来存放地址的,可以通过指针所指向的地址找到所指向内存单元的内...

2018-11-10 13:59:52 556

原创 strlen函数详解

在c语言中,strlen函数,引用<string.h>头文件,作用是计算字符串长度。定义  :      size_t   strlen ( const  char * str );    这里有两处说明:        1.返回类型size_t                size_t 可以看作 unsigned long ,是无符号长整形。         2...

2018-11-05 23:03:59 1611

原创 qsort函数解析

qsort函数是一种回调函数,是基于快速排序的算法,可以实现排序。 这里先看一下qsort函数的参数                                void qsort(void* base, size_t num, size_t size,int(*compar)(const void*, const void*));第一个参数是传要排列的数组;第二个参数是数组中...

2018-11-04 14:57:54 315

原创 调整数组使奇数全部都位于偶数前面

题目:        输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,使得所有偶数位         于数组的后半部分。解题思路:       要将数组中的奇数放到偶数前面,我们可以从数组左边开始找一个偶数,同时从数组右边开始找一个奇数,然后交换,循环往        复,便可将奇数放到偶数前面。这里需要注意,当左下标小于右下标时方可进行交...

2018-11-03 13:59:45 421

原创 杨氏矩阵查找数字(递归和非递归)

杨氏矩阵 有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。要求:时间复杂度小于O(N); 例:  1 2 3         4 5 6         7 8 9这里时间复杂度O(N) = row + col;            //行数+列数要使时间复杂度小于O(N),则必须从右上角开始走或者从左下角开始,如图所...

2018-11-03 00:06:12 317

原创 c语言按位异或^的应用实例

1.若a ^ b = c; 则有a ^ c = b, b ^ c = a;例:将两个整形变量交换(不创建临时变量)这里就可以用到上面得到的规律来写,在写代码之前先给上面的规律附上具体值来验证一下:           10的二进制     01010           20的二进制     10100                       01010           ...

2018-10-28 21:09:10 2975

原创 模拟实现strcpy函数功能(优化改进)

strcpy函数,字符串拷贝函数,传入两个参数,将第二个参数的值拷贝到第一个中去。首先,给出一个普通的代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>void my_strcpy(char *str1, char *str2){ while (*str2)...

2018-10-22 23:04:27 545

原创 汉诺塔问题(看完就记住)

汉诺塔问题:有三个柱子,初始柱a,辅助柱b和目标柱c;在初始柱上有着n个圆盘(圆盘放置规则,大的在下小的在上),对圆盘从上到下依次编号从1到n。将圆盘从初始柱a移到目标柱c上的问题就是汉诺塔问题。 解题思路: (1)以c柱为中介,从a柱将1至n-1号盘移至b柱; ...

2018-10-18 21:48:03 6548

原创 c语言操作符汇总

分类:算数操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员算术操作符      +        -         *        /       %                              1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。2. 对...

2018-10-17 20:58:57 210

原创 回味童年,经典扫雷再升级

这里完成一个c语言的扫雷游戏:游戏要求:雷盘可以展开 游戏结束显示所用时间 第一次无论走哪都不会被炸死这个创建一个扫雷项目,包含一个game.h头文件和两个分别为text.c和game.c的源文件。text.c源文件:包含主函数main()、菜单函数menu()、游戏函数game();#include"game.h"void menu(){ printf("****...

2018-10-14 21:57:51 415

原创 三子棋(井字棋),说没玩过的都没童年

这里我创建了一个“三子棋”的项目,里面有一个头文件game.h和两个源文件text.c 、game.c。"text.c":text.c源文件放的是main函数,菜单打印menu函数和一个游戏game函数;#include "game.h"void menu(){ printf("**************************\n"); printf("*** ...

2018-10-13 21:42:58 571 2

原创 三种方法实现strlen函数

      我们知道,strlen函数是计算字符串长度的函数,那么要实现strlen函数主要就是得到字符串长度,那么 怎样才能得到字符串长度呢?如果是整形的数组,我们可以通过下标来寻找,可是这是字符串,我们就要了解字符串了。        这里定义一个字符串 char *str = "abcdef";这里我们可以看到字符串里有'a','b','c','d','e','f',其实字符串后还有一个...

2018-10-11 00:27:52 481

原创 求第n个斐波那契数(分别用递归和非递归两种方法求解)

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55……这个数列从第3项开始,每一项都等于前两项之和。这里分别用递归和非递归的方法实现:递归#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>int fib(int n){ ...

2018-10-09 22:01:49 757

原创 用函数实现初始化数组、 清空数组、数组元素的逆置

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>void Empty(int arr[],int sz){ int i = 0; for (i = 0; i < sz; i++) { arr[i] = 0; }}void reverse(int a...

2018-10-08 23:18:48 356

原创 如何实现对函数的隐藏,看完就会

      当你写了一个函数可以实现某些功能时,你要给其他人使用,却不想让别人看到你写的函数的内容,这时你就可以通过对函数内容进行隐藏来达到目的,函数提供了对过程的封装和细节的隐藏,那么今天我们就来看看如何对函数进行隐藏: 这里以上篇博客写的Swap函数为例,这里先给出全部代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h...

2018-10-01 17:57:55 2038 1

原创 调用函数时,到底什么时候要用指针接收,看完就不难理解了(Swap交换函数为例)

在这里我通过讲解一个交换函数来讲解一下什么时候传参需要用指针接收。 这里先看一段代码,很多初学者对指针掌握不够,经常会写出这样的代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>void Swap(int x, int y){ int tmp = x; x ...

2018-09-29 20:16:24 3885 8

原创 二分法查找有序数组

     当数组为有序数组,我们发现原始的方法在数组中查找一个数时,会通过多次执行循环查找,然而这样查找下去,假设数组中有n个元素,最差的情况下会循环n次,当数组中元素足够大时,我们发现这样查找效率十分低下,那么这里使用二分法查找会很大地提高查找效率,这里给出二分法分析步骤:当有一个数组 arr[10] = {1,2,3,4,5,6,7,8,9,10};  假设寻找 key = 7;1. ...

2018-09-29 00:17:25 1620

原创 猜数字游戏,进来玩玩呗

直接代码和结果演示:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<time.h>void menu(){ printf("******************************\n"); printf("***** ...

2018-09-27 20:57:40 272

原创 输出0~999999之间的水仙花数

水仙花数,就是一个n位数的每位数的n次方之和与这个数本身相等,谓之水仙花数。(在一些资料上提到的只有三位数是水仙花数,其他位数有其他的名字,此处不深究,就按照例子上的定义求解水仙花数)例如153=1^3 + 5^3 + 3^3,再例如1634=1^4 + 6^4 + 3^4 + 4^4。#define _CRT_SECURE_NO_WARNINGS 1#include&lt;stdi...

2018-09-27 00:13:01 351

原创 输出一段话,开始都是*,从两边逐渐向中间展开(结果为动态,不要错过)

打印“Welcome to my blog!!!”这句话,但是要先输出一串“ ********************** ”,然后由两边向中间逐渐展开#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <windows.h> int mai...

2018-09-25 18:14:42 509

原创 输出9*9乘法口诀表 (题简单,通过这个题说一下输出形式,让输出更加美观)

 #define _CRT_SECURE_NO_WARNINGS 1#include&lt;stdio.h&gt;#include&lt;windows.h&gt;int main(){ int i = 0; int j = 0; int sum = 0; for (i = 1; i &lt;= 9; i++) { for (j = 1; j &lt;= i; j++)...

2018-09-24 19:25:28 3762

原创 求100~200之间的素数

这个题比较简单,这里给出两种写法:1.#include<stdio.h>int main(){ int i = 0; int num = 0; for (num = 100; num <= 200; num++) { for (i = 2; i < num / 2; i++) { if (num % i == 0) { ...

2018-09-23 20:15:23 641

原创 vs2017的常用快捷键

1.调试1)调试(启动):F5;2)调试(重新启动):“Ctrl+Shift+F5”;3)调试(开始执行不调试):“Ctrl+F5”;4)调试(逐语句):F11;5)调试(逐过程):F10;6)设置断点:F9。 2.复制/剪切/删除整行代码1)将光标移至该行,“Ctrl+c”复制操作。2)将光标移至该行,“Ctrl+x”剪切操作。 3)将光标移至该行,“Ctrl+l”删除...

2018-09-22 18:27:38 483

原创 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 (改善精简)

废话不多说,先上代码和结果截图:#include&lt;stdio.h&gt;int main(){ int i = 0; int flag = 1; double count = 0; for(i=1; i&lt;=100; ++i) { count += flag*1.0/i; flag = -flag; ...

2018-09-21 23:01:10 536

原创 求两个数的最大公因数和最小公倍数

  今天看到了一道题,求最大公因数和最小公倍数,这个题要说难不难说简单也不简单,主要就是要看是否掌握求最大公因数和最小公倍数的算法,那么今天我就在这说一下这个题:(代码在最后)    首先不急着写代码,这个题主要点就在于怎么求最大公因数和最小公倍数,所以我们先来分析一下求这两个数的方法 ,假设这里两个数a,b;下面是我的解题思路:最大公因数  我先随便给ab赋值,我们先来看看这个测试a...

2018-09-20 21:12:49 6961 4

原创 将两个整形变量交换(不使用临时变量),看完你才会发现还有这么多门道

这里我们来说一下这个题:将两个整形变量啊a,b进行交换。传统的引用临时变量的方法#include&lt;stdio.h&gt;int main(){ int a = 10; int b = 20; int tmp = 0; tmp = a; a = b; b = tmp; printf("%d%d",a,b); retur...

2018-09-20 00:15:21 407

原创 在VS一些版本用‘scanf’时出现错误的问题,不想用'scanf_s',这样设置,以后都不用再麻烦了

在用到VS时,每当我们用到‘scanf’时,会发现这时候会出现错误,那么这里我将具体来说明一下。这里以VS2017为例,敲一段代码,当使用scanf时,这时会发现有一个错误。这时系统会提示'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable depre...

2018-09-18 21:11:13 3331 5

空空如也

空空如也

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

TA关注的人

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