C
Sponge_bob_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
KMP算法
int Index_KMP(SString S,SString T,int pos){ //主串为S,模式串为T,从主串的第pos个字符开始匹配 int i=pos,j=1; while(i<=S.length&&j<=T.length){ if(j==0||S.ch[i]==T.ch[j]){//j==0表示主串的第i个字符和模式串的第一个字符不等 ++i; ++j; }else{ j=next[j]; } if(j>T.leng原创 2020-10-06 16:05:45 · 158 阅读 · 0 评论 -
BF模式匹配算法
//BF模式匹配算法 int Index_BF(SString S,SString T,int pos){ //主串为S,模式串为T,从主串的第pos个字符开始匹配 int i=pos,j=1; while(i<=S.length&&j<=T.length){ if(S.ch[i]==T.ch[j]){ ++i; ++j; }else{ i=i-j+2;//指针后退重新匹配,主串从下一个字符开始匹配 j=1; } if(j>原创 2020-10-06 15:04:21 · 736 阅读 · 0 评论 -
二维数组中有关的指针
#include<stdio.h>int main(){ int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};// a表示第一行,用这一行的首地址表示 // *a可以看作一维数组a[4](二维数组的第一行)中的a[0]的地址(指针) // **a表示一维数组a[0]的值 ,即二维数组a[0][0]的值 // 所以*(a+1)表示第二行,用第二行首地址表示 // *(a+1)+1表示a[1][1]的地址,等价于a[1]+原创 2020-09-25 20:43:29 · 297 阅读 · 0 评论 -
判断闰年
#include<stdio.h>//判断闰年//闰年判定方法://1.能被400整除。(能被400整除一定能被4和100整除)//2.或者能被4整除但不能被100整除。int is_leap(int num){ if(num%4!=0){//不能被4整除 return 0;//不是闰年 } if(num%100!=0){//能被4整除且不能被100整除 return 1;//是闰年 } if(num%400==0){//能被400整除 return 1原创 2020-09-22 20:47:26 · 191 阅读 · 0 评论 -
//求多项式1-1/2+1/3-1/4...+1/99-1/100
#include<stdio.h>//求多项式1-1/2+1/3-1/4...+1/99-1/100double sum(){ int sign=1;//符号 double sum=1.0, t, n=2.0; while(n<=100) { sign=-sign; t=sign/n; sum+=t; n++; } return sum;} int main(){ printf("%5.2lf",sum()); return 0;}.原创 2020-09-22 20:20:26 · 653 阅读 · 0 评论 -
n的阶乘(n!)
#include<stdio.h>int main(){ int x,rs; long int factorial(int n); scanf("%d",&x); rs=factorial(x); printf("%ld",rs); return 0;}long int factorial(int n){ long int t=1; while(n>0){ t*=n; n--; } return t;}原创 2020-09-22 20:01:19 · 427 阅读 · 0 评论 -
判断一个整数是否为素数
#include<stdio.h>#include<math.h>int main(){ int is_prime(int n); int m,x; scanf("%d",&x); m=is_prime(x); if(m==1) printf("YES"); else printf("NO"); return 0;}int is_prime(int num){ int i; if(num<=1) return 0;//不是素原创 2020-09-22 19:49:25 · 362 阅读 · 0 评论 -
多种排序耗时比较
#include<stdio.h>#include<stdlib.h>#include<time.h>#include<math.h>#include<iostream>using namespace std;#define MAXSIZE 10000#define OK 0typedef int KeyType;typ...原创 2019-08-02 09:07:58 · 323 阅读 · 0 评论 -
直接插入排序,简单选择排序,快速排序。
#include<stdio.h>#define MAXSIZE 10000typedef struct{ int key;}RedType;typedef struct{ RedType *r; int length;}SqList;void InsertSort(SqList &L){//直接插入排序 int i,j; f...原创 2018-12-21 16:56:09 · 1009 阅读 · 0 评论 -
大数相加
#include<stdio.h>#include<string.h>#define N 200int main(){ char s1[N],s2[N]; int a[N]={0},b[N]={0}; int l1,l2,c,k,i; gets(s1); gets(s2); l1=strlen(s1); l2=strlen(s2); if(l1<...转载 2018-12-21 16:06:22 · 181 阅读 · 0 评论 -
斐波那契
#include<stdio.h>int main(){ int n,a,b,c,i; scanf("%d",&n); a=b=1; if(n==1||n==2) printf("1\n"); else { for(i=3;i<=n;i++){ c=a+b; a=b; ...原创 2018-12-21 16:05:34 · 198 阅读 · 0 评论 -
十进制转化为二进制
include<stdio.h>int main(){ int n,a[1000],i=0,j; scanf("%d",&n); while(n){ i++; a[i]=n%2; n/=2; } for(j=i;j>0;j--) printf("%d",a[j]);ret...原创 2018-12-21 16:04:18 · 614 阅读 · 0 评论 -
直接插入排序、二分(折半)插入排序
#include<stdio.h>#include<stdlib.h>#include<time.h>#include<iostream>using namespace std;#define MAXSIZE 1000#define OK 0typedef int KeyType;typedef int Status;typede...原创 2019-08-02 09:08:28 · 331 阅读 · 0 评论 -
查找//顺序查找、折半查找
#include<stdio.h>#include<iostream>#include<stdlib.h>#define OVERFLOW -2#define ERROR 1#define OK 0#define MAXSIZE 10using namespace std;typedef int Status;typedef struct...原创 2018-11-22 21:36:30 · 382 阅读 · 0 评论 -
十进制转化为二进制
十进制转化为二进制#include&lt;stdio.h&gt;void fec(int n){ if(n&lt;0) { n=-n; printf("-"); } if(n/2&gt;0){ fec(n/2); printf("%d",n%2); }原创 2018-10-04 19:20:56 · 420 阅读 · 0 评论 -
递归实现n!
递归实现n!#include<stdio.h>int fec(int n){ int s; if(n==0||n==1) s=1; else if(n<0) printf("ERROR"); else s=n*fec(n-1); return s;}int main(){ int m,k; ...原创 2018-10-04 20:11:49 · 792 阅读 · 0 评论 -
阶乘n!(非递归算法)
阶乘(非递归算法)#include&lt;stdio.h&gt;int main(){ int n,i,s=1; while(~scanf("%d",&amp;n)) { if(n==0) printf("0!=1\n"); else if(n&lt;0) prin原创 2018-10-04 20:32:13 · 3078 阅读 · 0 评论 -
用递归算法实现斐波那契数列
用递归算法实现斐波那契数列#include<stdio.h>int f(int n){ if(n==0) return 0; else if(n==1||n==2) return 1; else return f(n-1)+f(n-2);}int main(){ int m,k; while(~scanf("%d...原创 2018-10-04 21:10:03 · 2569 阅读 · 0 评论 -
斐波那契数列的非递归实现
斐波那契数列的非递归实现#include<stdio.h>int main(){ int n,i=0; int k,l,m;//k,l,m表示连续的三个斐波那契数字 scanf("%d",&n); k=l=1;//用k,l分别表示第一和第二个斐波那契数字 if(n==1||n==2) printf("1\n"); el...原创 2018-10-05 08:07:05 · 567 阅读 · 0 评论 -
链表实现循环队列的基本功能
链表实现循环队列的插入(入队)、删除(出队)和遍历。#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0typedef int Status;typedef int QElemType;typedef struct QNode{ QElemType data; struc...原创 2018-10-15 22:30:55 · 1934 阅读 · 0 评论 -
用C语言实现KMP算法
用C语言实现KMP算法#include&lt;stdio.h&gt;#include&lt;string.h&gt;typedef struct SString{ char ch[100]; int length;}SString;int Index_KMP(SString S,SString T,int next[]){ //利用模式串T的next函数求T在主串...原创 2018-10-16 20:43:21 · 875 阅读 · 0 评论 -
二维对称矩阵的C语言实现
#include<stdio.h>#include<stdlib.h>#include<malloc.h>void assign(int a[],int i,int j,int e){ if(i>=j) a[i*(i-1)/2+j-1]=e; else a[j*(j-1)/2+i-1]=e;}int...原创 2018-10-23 21:44:17 · 2883 阅读 · 0 评论 -
HDU1686-Oulipo的C语言实现(KMP)
原题见链接内容**Sample Input3BAPCBAPCAZAAZAZAZAVERDIAVERDXIVYERDIANSample Output130**#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt;int Index_KMP(char S[],char T[],int next[]){原创 2018-10-23 21:52:20 · 353 阅读 · 0 评论 -
HDU2087-剪花布条的C语言实现()
原题见链接内容**Sample Inputabcde a3aaaaaa aa#Sample Output03**#include&amp;amp;lt;stdio.h&amp;amp;gt;#include&amp;amp;lt;string.h&amp;amp;gt;int Index_KMP(char S[],char T[],int next[]){ int i=0,j=0,k=0;原创 2018-10-23 21:55:55 · 869 阅读 · 0 评论 -
用链表实现栈的初始化、入栈、出栈、删除和销毁
用链表实现栈的基本功能用链表实现栈的初始化、入栈、出栈、删除和销毁、#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;#include&amp;lt;malloc.h&amp;gt;typedef int SElemType;typedef int Status;#define Ok 1;#define E原创 2018-10-15 22:05:53 · 1816 阅读 · 1 评论
分享