算法
Alicesa
略懂c#,c,php后端语言,
略懂vue,js前端语言,
略懂服务器Node语言
展开
-
统计子串出现次数
int Found(char* a, char* b) { int count = 0; char* p = a, * q; while (*p) { q = strstr(p,b); //该函数返回在 a 中第一次出现 b 字符串的位置,如果未找到则返回 null。 if (q == NULL)//如果没有在剩余的字符串中没有找到则返回null退出; break; p = q + strlen(b);//找到一次没有退出证明还可以继续查找。 /原创 2021-07-05 17:41:11 · 713 阅读 · 0 评论 -
单独的数字
暴力求解 int Sing(int* arr, int num){ int zd = 0; for (int i = 0; i < num; i++) { zd = 0;//将每个元素进行遍历然后如果出现重复 for (int j = 0; j < num; j++) { if (arr[j]==arr[i])//遍历查找。进行比较 { zd++; } } i原创 2021-07-05 17:36:34 · 241 阅读 · 0 评论 -
寻找下一个素数
int i = 2, n = 0, flg = 1; scanf("%d", &n); while (n++) { i = 2;//如果不是上一个值不是素数刷新i的值继续试除下一个数; flg = 1;//刷新标志符; while (i < n) { if (n % i == 0) { flg = 0; break; } i++; } if (flg == 1) { break; } } print原创 2021-07-05 16:55:21 · 785 阅读 · 0 评论 -
约瑟夫数优化算法
普通int NSf(int *arr, int m){ int number=0,d = 10; int loop = 1; for (int i = 0; i < 10; i++) { if (arr[i]>0) { loop++;//不为0说明未出列可以报数 if (loop==m) { printf("GETout""%d\n", arr[i]); arr[i] = 0;//报到3了出局 number++;//统计个数原创 2021-07-05 16:53:51 · 161 阅读 · 0 评论 -
在有序数列中插入一个元素后仍为有序@详解
int arr[10] = { 1,5,7,11,15,19,23,28,31 }; int i, n = 0, j = 0, flago; scanf("%d", &n); for (i = 0; i < 10 - 1; i++) { if (arr[i] > n) { flago = i;//保存要存放n要存放的下标 break; } } //n值存放之前的所有数据往后挪 f...原创 2021-07-05 16:48:41 · 1967 阅读 · 0 评论 -
验证偶数可以被两个素数和详解
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-07-05 16:40:19 · 352 阅读 · 0 评论 -
给定某个正整数 n,求其素因子分解结果 所谓素因子分解就是找这个数的所有约 数并且约数是素数
int i=2,n = 0; scanf("%d", &n); while (1) { for (i = 2; i <= n; i++)//能被i整除的数那么肯定能被i的倍数整除。从而保证所有的因子都是素数 { if (n % i == 0) { printf("%d ", i); n = n / i;//每次因数分解完一个需除去该因子 break;//在...原创 2021-07-05 16:39:48 · 1569 阅读 · 0 评论 -
水手分椰子之穷举法
3.五个水手来到一个岛上,采了一堆椰子后,因为疲劳都睡着了。一段时间后,第一个水手醒来, 悄悄地将椰子等分成五份,多出一个椰子,便给了旁边的猴子,然后自己藏起一份,再将剩下的椰子重新合在一起,继续睡觉。不久,第二名水手醒来,同样将椰子了等分成五份,恰好也多出 一个,也给了猴子。然而自己也藏起一份,再将剩下的椰子重新合在一起。以后每个水手都如此 分了一次并都藏起一份,也恰好都把多出的一个给了猴子。第二天,五个水手醒来,发现椰子少 了许多,心照不喧,便把剩下的椰子分成五份,恰好又多出一个,给了原创 2021-07-05 16:39:35 · 895 阅读 · 0 评论 -
二维数组外围元素相加,算法优化
int aa[M][N] = { {1,3,5,7,9}, {2,9,9,9,4}, {6,9,9,9,8}, {1,3,5,7,0} }; int i, j,sum=0; for ( i = 0; i < M; i++) { for ( j= 0; j < N; j++) { if (i==0||i==M-1)//第一行和最后一行 { sum += aa[i][j]; printf("%d ", aa[i][j.原创 2021-07-05 16:40:08 · 618 阅读 · 0 评论 -
数字金字塔,你上也行
先打出一半 int i, j, numb1, numb2, n = 9; for (i = 1; i < n; i++) { for (j = 0; j < n - i - 1; j++) { printf(" "); } for (numb1 = 1; numb1 <= i; numb1++) { printf("%d", numb1); } printf("\n"); }另一半的规律就是遍历上一半的最后一个数字,但是由于nu原创 2021-07-04 16:53:40 · 215 阅读 · 0 评论 -
统计任意数字,有可以组成多少个不相同的数
int a1, a2, a3,sum=0;for ( a1= 1; a1 <=4; a1++){ for (a2 = 1; a2 <= 4; a2++) { for (a3 = 1; a3 <= 4; a3++) { if ((a1^a2)!=0&&(a1 ^ a3)!=0&&(a2 ^ a3)!=0)//简写形式就是三种数字不能重复 { sum = a1 * 100 + a2 * 10 + a3; printf.原创 2021-07-04 16:44:26 · 241 阅读 · 0 评论 -
教你规律的打出空心菱形
int i, j, m, n; scanf("%d", &n); for (i = 0; i < n; i++) { for (j = 0; j < n-1-i ; j++)//规律空格个数是数字的-1,接一个* { printf(" "); } for (m = 0; m < 2 * i +1; m++)//0行也i=0时也打印* { ///找出规律 // 0/* 0 * 每i=0时最后一个元素为2*i(从零开始的) //原创 2021-07-04 16:31:54 · 282 阅读 · 0 评论 -
排序三大算法
这里写目录标题1冒泡排序2选择排序3插入排序1冒泡排序冒泡比较常见不详解void BubbleSort(int a[], int len){ int i, j, temp; for (j = 0; j < len - 1; j++) { for (i = 0; i < len - 1 - j; i++) if (a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = tem原创 2021-07-04 16:25:27 · 107 阅读 · 0 评论 -
字符间插入空格
简单的数学应用char funs(char* s){ int i = 0; for ( i = strlen(s); i >0 ; i--)//空格的数量加上'\0'的数量正好是'原字符串的两倍'; { s[2 * i] = s[i];//第一个每一个数据的下标为原下标的两倍//还有一个因为中间存放需‘\0’ s[2 * i - 1] = ' '; } //即原下标 (0)1 (1)2 (2)3 (3)4=(0)1 (1)" " (2)2 (3)"" (4)3 //原创 2021-07-04 16:16:43 · 388 阅读 · 0 评论 -
十进制转二进制递归版
代码如下if (n / 2)//余数大于零,还可以继续除, to_b(n / 2);//继续递归 printf("%d", n % 2);//当不为零时则进行模2进行输出当然也可以写成这样void to_b(unsigned long n) { unsigned long r; r = n % 2; if (n >= 2) to_b(n / 2);putchar(r ? '1' : '0'); return; }道理一样输出的时字符串...原创 2021-07-04 16:02:21 · 415 阅读 · 0 评论 -
统计单词个数
核心思想当if进去之后就不会进入else由于单词为空格则为下一个有可能即为单词,如果下一个仍为空格则在进入if语句,将标志重新置为1只有当下一个不为1空格这时候再去检测标志是否为1如果为1则为一个单词int strings(char* s){ int i=0, j=0, flago = 1; while (s[i]) { if (s[i]==' ') { flago = 1; } else if(flago) { j++; flago = 0;原创 2021-07-04 15:39:44 · 158 阅读 · 0 评论 -
排序单词算法
这里写目录标题算法一暴力法算法二,二维数组算法一暴力法void sort(char* s[], int n) { char* tmp = 0; int i=0,j=0; for ( i = 0; i < n-1; i++) { for (j = 0; j < n-i-1 ; j++) { if (strcmp(s[j],s[j+1])>0)//核心进行比较开头字符的大小进行冒泡排序 { tmp = s[j]; s原创 2021-07-04 15:32:00 · 275 阅读 · 0 评论 -
小球反弹问题,代码实现
#简单的数学题 //小球反弹问题 double m = 100, m2 = 0, sum = m; int n = 9;//第一段已经计算只需下落的高度即可 while (n--) { m = m / 2; sum += m * 2;//两段路程弹起的高度与下落的高度一样所经过的路程即为弹起高度的两倍// } printf("%f", sum); ...原创 2021-07-04 15:21:31 · 529 阅读 · 0 评论 -
编写函数,函数功能:删去一维数组中所有重复的数,只保留不同的数。
文章目录要求:代码详解要求:编写函数,函数功能:删去一维数组中所有重复的数,只保留不同的数。 输出主函数原来 元素和删除后的元素。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如:一维数组中的数据是 : 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是 : 2 3 4 5 6 7 8 9 10 * /*/代码详解int i, j, n = 20, k = 0; int arr[20] = { 2 ,2, 2原创 2021-07-04 15:07:38 · 5621 阅读 · 4 评论 -
js的数组的升维
文章目录升维一、如一个这样的一维数组二、先遍历,再判断原理:升维将一个一维数组变成二维数组例如将一个数组将相同类型的数组合在一起一、如一个这样的一维数组 vararr = [ { type: '电子产品', name: ' iPhone', price: 8888 }, { type: '家具', name: '桌子', price: 100 }, { type: '食品', name: '瓜子', price: 10 },原创 2020-09-02 14:34:40 · 1113 阅读 · 0 评论 -
jQ实现数组的降维
对json的数据有所帮助,一些数据的处理代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><原创 2020-08-30 14:22:46 · 182 阅读 · 0 评论 -
C语言模拟实现memcpy函数和memove函数
这两个函数是整形数组里的库函数文章目录这两个函数是整形数组里的库函数一、memcpy--类型不限函数简介函数实现二、memove函数函数简介总结一、memcpy–类型不限函数简介数memcy从source的位置开始向后复制num个字 节的数据到destination的内存位置。●这个函数在遇到’\0’的时候并不会停下来。●如果source和destination有 任何的重叠, 复制的结果都是未定义的。memcpy(arr1, arr2);//函数名(目的地,源头,num)num要拷贝多少原创 2020-08-25 22:40:30 · 392 阅读 · 0 评论 -
C 语言模拟实现库函数strcopy,strca,strcmp,strstr
目录结构一、strcopy函数模拟实现二、strcat函数模拟实现三.strcmp函数模拟实现一、strcopy函数●源字符串必须以’\0’结束。●会将源字符串中的’\O’拷贝到目标空间。●目标空间必须足够大, 以确保能存放源字符串。●目标空间必须可变。strcpy(arr1, arr2);//函数名(目的地,源头)模拟实现 char * my_strcpy(char* dest, const char* src){ char* ret = dest; while原创 2020-08-25 18:44:37 · 475 阅读 · 0 评论 -
C 语言实现模拟strlen求字符串长度函数3种方法(详解)
库函数strlen这个函数是求字符串长度的字符串以’\0’作为结束标志, strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’)。参数指向的字符串必须要以’\0’结束。注意函数的返回值为size._t, 是无符号的(易错)文章目录库函数strlen一、最简单方式(计数器)原理:二、递归方式原理:三,指针减指针原理:结果一、最简单方式(计数器)int my_strlen(const char* str){int count = 0;while (*str !原创 2020-08-25 18:10:18 · 1533 阅读 · 1 评论 -
C语言旋转字符(详解)(算法)
在一个数组中旋转字符 abcdef=>>>输出旋转之后的字符我要旋转2个字符cdefab文章目录在一个数组中旋转字符一、暴力求解法原理二、算法二,三步翻转三步反转法是什么结果(翻转3个字符)一、暴力求解法void left_move(char* arr, int k){ /*assert(arr != NULL);*/ int i = 0; int len = strlen(arr); for (i = 0;i < k;i++){ //左旋转一个字符原创 2020-08-25 16:18:12 · 995 阅读 · 0 评论 -
C语言实现,简单实现数学,猜凶手和,游泳比赛编程判断
文章目录猜凶手原理实现方法(假设法)结果游泳比赛实现方法(穷举法)原理结果猜凶手猜凶手题目内容:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:A说:不是我。//0(假)B说:是C。//0C说:是D。//0D说: c在胡说//1已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写-个程序来确定到底谁是凶手原理这里假设a是凶手如果a是凶手3假1,真不满足条件,不满足就换个人假设直到3个人说了真话,1个人说的是假话。成立实现原创 2020-08-25 14:55:29 · 407 阅读 · 0 评论 -
C 语言实现杨氏矩阵找数字(详解)
杨氏矩阵一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录杨氏矩阵实现杨氏矩阵找数字原理(实现方法)代码实现结果实现杨氏矩阵找数字原理(实现方法)123456789找对角线的位置比如这个3这个位置比较特殊和7,先拿3说,3这个位置仔细观察3是所在这个一行里最大的,而在一列里是最小的7是一行里最小的,是一列中最大的有了这些条件就好原创 2020-08-25 14:24:48 · 279 阅读 · 0 评论 -
C 语言 喝汽水1瓶汽水1元,2个空瓶可以换一 瓶汽水20元喝多少瓶详解
文章目录一、算法一二、算法二结果一、算法一//买回来的汽水喝掉 total = money; empty = money; //换回来的汽水 while (empty >= 2) { total += empty / 2;//拿空瓶换的汽水 empty = empty / 2 + empty % 2;//清算手里的空瓶 } printf("total = %d\n", total); return 0;二、算法二if (money == 0)total原创 2020-08-24 21:49:24 · 355 阅读 · 0 评论 -
C语言 打印一个菱形
如何打印你得先明白如何打印金字塔,即可,上半部分,空格减少,*增加,下半部分空格增加,*减少,文章目录如何打印前言一、上代码效果前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、上代码int line = 0; scanf("%d", &line);//7 //打印上半部分 int i = 0; for (i = 0;i < line;i++)原创 2020-08-24 21:33:56 · 290 阅读 · 0 评论 -
C语言,实现计算水仙花数,四叶玫瑰数,五角星数 等。。详解(算法)
水仙花数规则水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)文章目录水仙花数规则前言一、先上代码原理:总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、先上代码int i = 0; for (i = 100; i <= 100000; i+原创 2020-08-24 20:58:53 · 4459 阅读 · 0 评论 -
C 语言实现模仿库函数qsort函数
库函数qsortbase – 指向要排序的数组的第一个元素的指针。nitems – 由 base 指向的数组中元素的个数。size – 数组中每个元素的大小,以字节为单位。compar – 用来比较两个元素的函数。给一个比较规则就可以排序东西的库函数实现文章目录库函数qsort前言一、实现原理:二、尝试排序结构数据三.开始调用结果前言当然前提是离不开最主要的冒泡排序的规则void Swap(char* buf1, char* buf2, int width){ int i = 0;原创 2020-08-24 17:44:44 · 185 阅读 · 0 评论 -
c语言 计算存储中补码1的个数详解(算法)
计算机的存储模式整形数字存放的方式都是以二进制补码存储打印的是原码,转换规则,原码-取反->得反码,反码-1得补码当然正数的原反补相同那么如何计算一个数的二进制的补码有几个1呢文章目录计算机的存储模式一、剥落法二、按位与法原理:总结一、剥落法emmm什么加剥落法。举一个例子123这个数字你要拿到分别拿到1,2,3怎么办那就一层一层剥落下来123%10得3123/10去掉3得1212%10=212/10=1这样就拿到了,那如果是二进制的话一样可以,二进制/2,%2即原创 2020-08-24 14:49:12 · 764 阅读 · 0 评论 -
C 语言实现两数交换的4种方法详解(算法)
两数交换一般都是创建临时一个存储空间,tmp = a;a = b;b = tmp;tmp就是临时变量实现交换值文章目录两数交换实现两数交换的方法一、临时变量存放法二、地址法三. 加减法四.异或法总结实现两数交换的方法这里举4个例。提示:以下是本篇文章正文内容,下面案例可供参考一、临时变量存放法代码如下swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; printf("a=%d,b=%d", a, b原创 2020-08-24 14:12:39 · 4540 阅读 · 0 评论 -
C 语言实现斐波那契数列,解决递归实现缺陷(算法)
何为斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,其斐波那契数列数列从bai第3项开始,每一du项都等于前两项之和。文章目录何为斐波那契数列概况一、递归实现函数原理 :二、交换位置方法原理:总结概况既然明确斐波那契数列确定基本算法如果你要求第n个斐波那契数列**n=n-1+n-2**提示:以下是本篇文章正文内容,下面案例可供参考一原创 2020-08-23 22:00:53 · 376 阅读 · 0 评论 -
C语言实现,阶乘和变式阶乘例1+2的阶乘+3的阶乘....详解(*算法*)
阶乘算法提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录阶乘算法前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考原创 2020-08-23 13:41:18 · 3134 阅读 · 0 评论 -
C 语言 实现在一个范围内找一个数字n出现几次,详解(算法)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结学习目标:学习内容:学习时间:学习产出:前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。原创 2020-08-23 19:49:34 · 2636 阅读 · 3 评论 -
C语言实现 求素数加过滤方法(算法)
在一个范围里求出该数里的所有素数文章目录在一个范围里求出该数里的所有素数原理一、试除法二、在此基础加上过滤原理总结原理明白素数判断规制即可如果一个数里这个数只能被1和他自己整除的数就是素数所谓试除法比如我拿一个17这个数字,如果他只能被1,17整除,那我拿2-16的数字整数看看是否为0,提示:以下是本篇文章正文内容,下面案例可供参考一、试除法int i = 0;for (i = 0; i <= 100; i++){ int j = 0; for原创 2020-08-23 18:42:05 · 212 阅读 · 0 评论 -
C语言实现 求两数的最公约数简单方法(算法)详解
求两数的最公约数第一种直接暴力循环求解法,第二种辗转相除法文章目录求两数的最公约数一、暴力循环求解法(通用方法)这个方法比较简单(基本原理)二、辗转相除法这种方法比较简洁总结一、暴力循环求解法(通用方法)这个方法比较简单(基本原理)简而言之就是判断两数同时能够被一个相同整数取模为0的那就是最大公约数 int n; int m; int i; int r; scanf("%d%d", &n, &m);原创 2020-08-23 17:24:04 · 977 阅读 · 0 评论 -
C语言实现,在一个有序数组里查找一个数字详解折半(二分)详解(*算法*)
关于在一个有序数组里查找一个数字详解折半(二分)(算法)分两种算法一种普通算法。一个一个遍历和,折半(二分)查找法文章结构关于在一个有序数组里查找一个数字详解折半(二分)(*算法*)一、普通方法二、二分查找法(折半查找法)1.一半再分一半原理总结提示:以下是本篇文章正文内容,下面案例可供参考一、普通方法遍历法这种一个一个遍历一个一个判断然后得到下标 int arr[] = { 1,2,3, 4,5,6,7,8,9, 10 }; int k = 7; //写一个代码,在arr数组(有序的原创 2020-08-23 11:44:29 · 1057 阅读 · 0 评论