algorithm
文章平均质量分 51
云乐仙er
这个作者很懒,什么都没留下…
展开
-
辗转相除法(求最大公约数)
性质:a = ka * i + a1b = kb * i + b1(a + b) % i = ((ka + kb) * i + (a1 + b1)) % i对 a 和 b 的和进行整除,和分别对它们进行整除取余数 是等价的涉及到取余数的时候 两个数相加取余数,和两个数分别取余数相加然后再取余数,效果是一样的 a = ka * ib = kb * i(b -...原创 2018-11-21 10:33:24 · 197 阅读 · 0 评论 -
进制转换
将P进制数 x 转换为十进制数 y 对于一个十进制的数 y = ,它可以写成这种形式: y = 同样的,如果P进制数x为 ,那么它写成下面这个形式之后使用十进制的加法和乘法,就可以转换为十进制数y: y = 而这个公式可以很容易用循环进行实现:...原创 2018-11-29 20:42:52 · 155 阅读 · 0 评论 -
C语言中%*s,%*c (还有%*.*s)
在 scanf 和 printf 里效果是不一样的。在 scanf 里的意思,表示忽略要读的项。比如 %*d 就是读一个 %d 该读的东西,但不赋值给任何变量。格式字符串的一般形式为:%[*][输入数据宽度][长度]类型其中有方括号[]的项为任选项“*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。scanf("%*d %*d %d", &n);如果输入...原创 2018-12-02 18:40:22 · 11378 阅读 · 0 评论 -
C++ STL中的Binary search(二分查找)
常用操作 1.头文件#include <algorithm>2.使用方法1.binary_search:查找某个元素是否出现。a.函数模板:binary_search(arr[],arr[]+size , indx)b.参数说明: arr[]: 数组首地址 size:数组元素个数 indx:需要查找的值c.函数功能: 在数组...原创 2018-11-27 19:18:45 · 653 阅读 · 0 评论 -
费马大定理
定理: 费马大定理,又被称为“费马最后的定理”,由17世纪法国数学家皮耶·德·费玛提出。 他断言当整数n >2时,关于x, y, z的方程 x^n + y^n = z^n 没有正整数解。一, 直角三角形a^2+b^2=c^2的a值奇偶数列法则:定理1.如a^2+b^2=c^2是直角三角形的三个整数边长,则必有如下a值的奇数列、偶数...原创 2019-04-14 15:43:20 · 1127 阅读 · 0 评论 -
栈的应用
栈(stack) 是一种后进先出的数据结构。怎么理解呢?可以把栈理解为一个箱子,而箱子的容量仅供一本书放入或拿出。每次可以把一本书放在箱子的最上方,也可以把箱子最上方的书拿出,如图所示。 在图中,依次把1号书、2号书、3号数放入箱中,接下来再分别把3号书和2号书依次拿出,最后把4号书放入箱中。在这个过程中可以注意到,每次都只对栈顶(箱顶)的书进行操作(放入或拿出),满...原创 2019-05-25 16:04:12 · 218 阅读 · 0 评论 -
快速幂
void Pow(int a,int b){ //快速求 a^b,复杂度 log(b) if(b == 0) return 1; if(b & 1) { // b是奇数 return a * Pow(a,b-1); }else{ int t = Pow(a,b/2); return t * ...原创 2019-08-02 20:15:02 · 91 阅读 · 0 评论 -
字符串库函数
字符串操作库函数详细说明char * strchr(const char * str,int c);寻找字符c在字符串str中第一次出现的位置。如果找到,就返回指向该位置的char*指 针;如果str中不包含字符c,则返回NULL char * strstr(const char * str, const char * subStr); 寻找子串subStr在str中第一次出现...原创 2019-07-31 10:41:21 · 352 阅读 · 0 评论 -
算法总结
数据的读入 可采用 cin.getline()一行一行读入数据;也可以采用cin.get()一个一个读入字符,但需要注意的是,cin.get()不会忽略任何字符,对于回车符需要单独处理。 如果 char a[50]; 则 cin.getline(a,50); 如果 string a; 则 getline(cin,a); ...原创 2018-09-02 16:38:03 · 105 阅读 · 0 评论 -
自定义常用函数
判断是否为平方数 bool IsSquare(int n){ int i; if(n==1) { return 1; } else { for(i=1; n>0; i+=2) { n-=i; //每次都减2 减到小于0结束 ...原创 2018-09-02 10:53:48 · 139 阅读 · 0 评论 -
算法常用库函数
目录pow()函数:求x的y次方(次幂) 此函数有毒勿用!!!memset()函数:将内存的前n个字节设置为特定的值 abs()函数:求绝对值(整数)将int转换为string的两种方法(to_string、字符串流)第一种第二种string对象与数值互相转换reverse:反向排序算法isdigit()函数:判断字符是否为阿拉伯数字#include▲...原创 2018-10-12 22:18:31 · 727 阅读 · 0 评论 -
排序
最快最简单的排序--桶排序(非常浪费空间!)(降序)#include<stdio.h>int main(){ int book[1001],i,j,t,n; for(i=0;i<=1000;i++) book[i]=0; //初始化为0 scanf("%d",&n); //输入一个数n,表示接下来有n个数 ...原创 2018-08-03 15:21:02 · 106 阅读 · 0 评论 -
栈 队列 链表
队列(先进先出)#include<stdio.h>struct queue{ int data[100]; //队列的主体,用来存储内容 int head; //队首 int tail; //队尾};int main(){ struct queue q; //注意struct queue需要整体使用,不能直接写queue q...原创 2018-08-03 15:21:37 · 102 阅读 · 0 评论 -
神奇的树
建堆以及堆排序(最小堆)#include <stdio.h>int h[101]; //用来存放堆的数组int n; //用来存储堆中元素的个数,也就是堆的大小//交换函数,用来交换堆中的两个元素的值void swap(int x,int y){ int t; t=h[x]; h[x]=h[y]; h[y]=t;}...原创 2018-08-03 15:21:58 · 146 阅读 · 0 评论 -
STL: (Standard Template Library) 标准模板库
使用其中的算法,需要#include <algorithm>*max_element函数找最大元素 *min_element函数找最小元素#include<iostream>#include<algorithm>using namespace std;int main(){ int n[]={1,4,22,3,8,5}; in...原创 2019-07-31 15:55:02 · 210 阅读 · 0 评论