算法
wmda999380
欢迎大家和我交流关于it方面的技术。我qq380728525
展开
-
无需第三个变量实现两个数的交换
int a=3,b=4;a=a+b;b=a-b;a=a-b;以上3行代码就简单的实现了无需第三方变量实现了对两个数交换原创 2013-10-31 16:08:35 · 778 阅读 · 0 评论 -
求最大公约数和最小公倍数的最简单 高效的算法
代码如下#include#include//最大公约数*最小公倍数=这两个数的乘积//可以使用求余数的方法计算最小公倍数,代码如下void main(){ int x,y,t,s; scanf_s("%d%d",&x,&y); if (x { x=x+y; y=x-y,x=x-y; }原创 2013-11-02 00:31:00 · 1338 阅读 · 0 评论 -
麦森数
麦森数问题描述形如2^p-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数。2^p-1 不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。你的任务:输入P (1000精度数表示)输入数据只包含一个整数P(1000输出要求第1行:十进原创 2013-11-17 19:21:33 · 1595 阅读 · 0 评论 -
不使用第三方变量,按位操作最快的交换两个数的方法
代码如下:#include #includevoid main(){ int x,y; scanf_s("%d%d",&x,&y); x=x^y; y=x^y; x=x^y; printf("%d,%d",x,y); system("pause");}原创 2013-11-11 15:31:43 · 545 阅读 · 0 评论 -
十进制转十六进制
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。 给出一个非负整数,将它表示成十六进制的形式。输入格式 输原创 2014-01-06 21:58:32 · 687 阅读 · 0 评论 -
几种经典的字符串hash算法
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash转载 2014-06-13 14:18:00 · 3065 阅读 · 0 评论