小算法
燚涯
这个作者很懒,什么都没留下…
展开
-
用位运算实现两个整数的加法运算
#include int add(int x, int y){int a = (x & y) int b = (x ^ y);return (a + b);}int main(void){printf("%d\n",add(7,-8));printf("%d\n",add(7,8));return 0;}原创 2015-03-17 20:52:59 · 409 阅读 · 0 评论 -
用位运算求两个数的最大值和最小值
在流水线CPU上,位运算有更高的执行效率#includeint max(int x,int y){int mask = -(x>y);return (x & mask) | (y & ~mask);}int min(int x,int y){int mask = -(x>y);return (y & mask) | (x & ~mask);原创 2014-10-18 13:30:11 · 2740 阅读 · 0 评论 -
判断一个数是否为质数
bool func(int n);int main(void) { int n; while(1) { scanf(“%d”,&n); if(func(n)) printf(“true!\n”); else printf(“false!\n”); }原创 2015-06-23 10:47:27 · 402 阅读 · 0 评论 -
辗转相除法求最大公约数
int func(int a, int b);int main(void) { int a,b; scanf(“%d%d”,&a,&b); printf(“%d\n”,func(a,b));return 0;}辗转相除法的功能函数 int func(int a, int b) { int temp; int max = a>b ? a:b;原创 2015-06-03 16:13:44 · 295 阅读 · 0 评论 -
360在线笔试题:挑选镇长
题目的描述如下所示:输入输出要求如下:#include #include struct GX{int num1;//renshi ta de ren;int num2;//ta renshi de ren;};int main(void){int T;int n,m;int** guanxi;int i原创 2015-08-11 22:20:10 · 1291 阅读 · 0 评论 -
求旋转数组的最小值
已知一个递增排序的旋转数组(没有重复的数),如{1,2,3,4,5}的一个旋转数组为{3,4,5,1,2},求旋转数组的最小值解题思路:(1)第一个指针总是指向前面的递增数组,最终停在最大的元素上,即元素5; (2)第二个指针总是指向后面的递增数组,最终停在最小的元素上,即元素1int findMin(int* nums, int numsSize) {int start = 0;int end原创 2015-07-17 23:12:20 · 483 阅读 · 0 评论 -
杨辉三角序列的生成
void Pascal(int n) {if (n == 0) return;int** num = (int**)malloc(sizeof(int*)*n);for (int i = 0; i < n; i++) num[i] = (int*)malloc(sizeof(int)*n);for (int i = 0; i < n; i++){ for (int j原创 2015-09-21 21:28:04 · 473 阅读 · 0 评论