C
三猪
一个不知名的码农
展开
-
伯努利-欧拉装错信封问题
伯努利装错信封问题的一般表述为: 某人写了n封信,写了这n封信对应的有n个信封,把所有的信都装错信封的情况共有多少种?解题思路:把n封信分别命为1到n,n个信封命为i[1]到i[n],然后由第一个信封开始依次拿信,如果拿到一封符合条件的(即不对应自己编号,也不会与前面信封存在的信的编号重合)即迭代进去下一信封的拿信.程序实现功能:输入一个数n,输出符合条件的所有情况及情况总数.#in...原创 2018-02-28 20:41:09 · 11986 阅读 · 0 评论 -
堆(Heap)排序(C语言实现)
void CreatHeap(int a[], int i, int n) { // 注意数组是从0开始计数,所以左节点为2*i+1,右节点为2*i+2 for (; i >= 0; --i) { int left = i * 2 + 1; //左子树节点 int right = i * 2 + 2; //右子树...原创 2018-08-03 11:45:50 · 1224 阅读 · 0 评论 -
冒泡排序(C语言实现)
void bubbleSort(int *arr,int n){ int m,i,j; for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) if(arr[j]>arr[j+1]) { m=arr[j]; arr[j]=arr[j+1]; arr[j+1]=m; }}原创 2018-08-03 11:43:18 · 108546 阅读 · 6 评论 -
出现Presentation Error的解决方法
有时候在电脑上写的程序运行成功,但在OJ平台上却会提示Presentation Error。1.思路是对的,且运行时间符合要求2.答案和标准结果非常接近,也就是说最可能是因为,在输出结果中,多了或少了不必要的空格或者回车或者其他,总而言之,OJ平台对格式的检查非常严格,所以一定要认真检查程序的输出结果是否与标准一致。...原创 2018-08-05 10:57:50 · 82826 阅读 · 0 评论 -
深度优先搜索(DFS)与广度优先搜索(BFS)简单实现
1.深度优先搜索原理(以二叉树为例)如下二叉树图(出处见水印)通俗讲也就是一根筋冲到底,到底之后在找离自己最近的分叉口再一根筋到底,如此反复.利用栈的原理对之前的节点进行存储,先入后出,即一路到底后便拿出栈中的最后一个数,反复进行.栈的实现利用简单的迭代可便捷实现.2.广度优先搜索原理(以二叉树为例)如下二叉树图再通俗讲也就是一层一层一层搜索,好比人的辈分,也就是先看祖爷爷辈的人,再看爷爷辈的人,...原创 2018-03-26 10:44:29 · 247 阅读 · 0 评论 -
手工开平方
正常情况我们不需要用到这种手动开平方,但当数字较大或者几百上千位时,那是相当可取的.先说明:当数字的位数为奇数位时,第一位数为单独一组,其后的数每两位一组.X|XX|XX|XX当数字为偶数位时,每两位数为一组.XX|XX|XX举例子: 数字151291,这个数比较小,我们直接计算机先算出开平方应为388.9614... 手算时间到 分组为15|12|91 先看15,很容易就...原创 2018-03-31 00:59:46 · 1133 阅读 · 0 评论 -
十进制转p进制与p进制转十进制
十进制转p进制整数部分 除p求余例 十进制 21 0 转八进制 210/8=26余2 26/8=3余2 3/8=0余3 所得八进制为322小数部分 乘p取整例 十进制 0.56 转八进制 0.56*8=4.48 0.48*8=3.84 0.84*8=6.72 直到小数点后全为0则完成 所得八进制为0.436....p进制转十进制这个...原创 2018-03-31 00:36:27 · 1814 阅读 · 0 评论 -
素数的搜索
素数:在大于1的自然数中,除了1和它本身以外不再有其他因数.假设我们要判断一个数a是否是素数.最简单的办法便是从(1,a)这个区间里,a一一对所有整数取余,如果存在余数为0,只不为素数.但这方法对于处理较大数第一次优化可将区间缩减到(1,a^(1/2))倘若在1到a^(1/2)存在一个数被整除,那在a^(1/2)到a必然有一个数与之对应.第二次优化可将区间内的所有的偶数去除(除了2)倘若a为偶数,...原创 2018-03-31 00:17:37 · 383 阅读 · 0 评论 -
求最大公约数与最小公倍数
首先,我们假设两个正整数a和b,我们来求这两个数的最大公约数和最小公倍数.重点一:(数学概念)两个数的乘积等于这两个数的最大公约数和最小公倍数的乘积.也就是说,我们只需要求得最大公约数与最小公倍数其中一个,便可以推出另一个.重点二:辗转相除法求最大公约数.举个例子理解一下这个方法. 例如56与48 我们把大的那个数放到a,另外一个数放到b 然后 a/b=5...原创 2018-03-30 23:45:10 · 321 阅读 · 0 评论 -
两个数(均小于10的1000次方)相乘
本文章纯粹为储存半成品代码.有兴趣的朋友也可以为我提提意见.#include<stdio.h>#include<string.h>void ride(int a[2000],int b[2000],int aini,int bini){ int carr=0,abini=aini,key; int ab[2000],n=aini,num,m; ab[abini...原创 2018-02-21 21:34:11 · 624 阅读 · 0 评论 -
C语言 链表实现队列操作
#include <stdio.h>#include <stdlib.h>struct Node{ //结构体节点 节点中包含值和下一个节点的内存地址,默认为空 int value; struct Node *next;};struct queue{ //结构体队列 队列中包含头节点和末节点内存地址 struct Node *start; str...原创 2019-03-07 15:36:38 · 469 阅读 · 0 评论