面试题
文章平均质量分 67
4559
这个作者很懒,什么都没留下…
展开
-
求素数之筛选法
筛选法可谓是最容易理解的一种寻找素数的方法了首先举个栗子来解释什么叫做筛选法,了解了解筛选法的思路:我要寻找从1到15里的素数 (红色代表被筛选掉,不是素数)第1步:1是素数我不用管,不需要筛选掉1的倍数1 2 3 4 5 6 7 8 9 10 11 12 13 14 15第2步:2没有被前面的筛选掉,所以2是素数,然后筛选掉2的倍数 4 6...原创 2018-05-01 16:21:40 · 2065 阅读 · 2 评论 -
汉诺塔问题(递归方法)
在A地只有一个盘子的时候直接A->B即可 在A地有两个盘子的时候A->CA->BA->B两个盘子比较容易理解现在理解一下三个以上的盘子 重头戏 在A地有超过两个盘子的时候 我们可以把整体看成两个部分 移动图解:123 前面提到,在A地有超过两个盘子的时候,我们可以把整体看成两个部分,整个过程与A地有两个盘子时一样,都借用了C地作为中转站。 于是我们...原创 2018-05-09 19:22:54 · 380 阅读 · 0 评论 -
模拟实现strcpy
#include<stdio.h>#include<windows.h>#include<assert.h>char * my_strcpy0(char *dest, const char *src)//优化前{ assert(dest&&src); char *ret = dest; while (*src != '\0') ...原创 2018-04-25 16:53:11 · 174 阅读 · 0 评论 -
数值的n次方
首先写代码之前我们要考虑我们将要测试的内容测试用例:把底数和指数分别设为正数,负数和0明白可能输入的所有情况后再开始写代码通过一个例子来讲解一下思路比如只求一个非负数2的32次方 按照一般思路,利用递归 递归31次 每次自乘一个基数如 void _pow(int n,int k){ else if(k==0) return 1; else if(k>1) return n*pow(n...原创 2018-05-10 13:55:09 · 1443 阅读 · 0 评论 -
计算两个数平均值的三种方法
第一种方法:思路:两数相加求和再除2代码int a=10;int b=20;int avg=0;avg=(a+b)/2;//平局值//或者avg=(a+b)>>1://右移表示除2,左移表示乘2这种方法最为简单,弊端是如果a和b非常大的话,a+b的值可能超过了整型的储存范围(最大值为2147483647),导致溢出,得到错误的结果,此方法不够好。第二种方法:思路:用...原创 2018-04-26 13:03:32 · 16585 阅读 · 0 评论 -
旋转数组的最小数
/*题意:在一个旋转过的有序数列中找它的最小值比如 1 2 3 4 5 6 7 8 9旋转后 4 5 6 7 8 9 1 2 3 思路:利用二分法的思想怎么去二分呢,现在用一个实例来感受一下在一个旋转过的有序数列中找它的最小值 4 5 6 7 8 9 1 2 3 1.先二分找到数组中间的值为 82.然后判断 8是否大于下限4 (为什么要判断这个?因为数组是由从4到9递增和从1到3递增的两个子数组...原创 2018-05-12 19:20:39 · 203 阅读 · 0 评论