
编程之美
钢琴冰指
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编程之美-2.3、寻找发帖水王id占一半
#include using namespace std; int find(int *a,int n) { int candidate; int nTimes=0,i; for(i=0;i { if(nTimes==0) { candidate=a[i]; nTimes=1; } else { if(candidate==a[i]) nTimes++; els原创 2013-03-31 22:56:28 · 668 阅读 · 0 评论 -
编程之美-2.7、最大公约数问题
#include "stdafx.h" #include using namespace std; /*思路一 辗转相除法 f(x,y)=f(y,x%y)(x>=y>0) 以此递归,直到一个数为0 */ int g1(int x,int y) { return (!y)?x:g1(y,x%y); } /*思路二 二进制除2,采用移位方法 辗转相除原创 2013-04-15 09:21:30 · 713 阅读 · 0 评论 -
编程之美-2.5寻找最大的K个数
思路一: 完全排序的方法,快排时间复杂度O(N*lgN) 在这儿就不写代码了 思路二: 假设n个数存在数组S中,从S中随机挑选x,把大于x的数放入Sa,吧小于等于x的数放入Sb,这时分两种情况: 1、Sa中元素个数小于k,Sa中所有数和Sb中最大的k-|Sa|个数(|Sa|指Sa中元素的个数)就是S中最大k个数; 2、Sa中元素个数大于或等于k,则需返回Sa中最大的k个数;原创 2013-04-12 09:55:58 · 641 阅读 · 0 评论 -
编程之美-2.4 1的个数
#include "stdafx.h" typedef int ULONGLONG; /** method1 不可取 O(N*lgN) */ ULONGLONG Count1InAInteger(ULONGLONG n) { ULONGLONG iNum=0; while(n!=0) { iNum+=(n%10==1)?1:0; n/=10; } return i原创 2013-04-11 09:14:03 · 657 阅读 · 0 评论 -
编程之美-1.1、cpu占用率保持到50%
windows的库函数都不会,努力补习 #include "StdAfx.h" #include int main() { /* for(;;) { for(int i=0;i ; sleep(10); } return 0; */ const DWORD busy_time=10; const DWORD idle_time=busy_time; lon原创 2013-03-31 22:33:36 · 873 阅读 · 0 评论 -
编程之美-2.2、n阶乘的二进制表示中最低位1的位置
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int n; scanf("%d",&n); int num=1; int i,j; for(i=1;i { j=i; while(j%2==0) { num++; j/=2; } } printf("n阶乘最低位1的位置: %d",num); r原创 2013-03-31 22:43:11 · 945 阅读 · 0 评论 -
编程之美-2.1、求二进制数中1的个数
#include "stdafx.h" //method 1 int count_01(char i) { int num=0; while(i) { if(i%2==1)num++; i=i/2; } return num; } int count_02(char i) { int num=0; while(i) { num+=i&0x01; i>>=原创 2013-03-31 22:41:04 · 738 阅读 · 0 评论 -
编程之美-2.2、寻找n阶乘中末尾0的个数
#include "stdafx.h" //方法一、 int count_01(int n) { int ret=0; int i,j; for(i=1;i { j=i; while(j%5==0) { ret++; j/=5; } } return ret; } //方法二、 int count_02(int n) { int ret=0;原创 2013-03-31 22:42:12 · 809 阅读 · 0 评论 -
编程之美-1.2、中国象棋
#include "stdafx.h" #define HALF_BITS_LENGTH 4 #define FULLMASK 255 #define LMASK (FULLMASK #define RMASK (FULLMASK>>HALF_BITS_LENGTH) #define LSET(b,n) (b=((b&RMASK)|(n #define RSET(b,n) (b=((b原创 2013-03-31 22:35:56 · 760 阅读 · 0 评论 -
编程之美-2.6、精确表达浮点数
#include "stdafx.h" #include #include using namespace std; //求两数最大公约数 int g1(int x,int y) { return (!y)?x:g1(y,x%y); } int* change_float(int x, int y,int n,int m) { int a[2]; a[0]=原创 2013-04-15 09:50:38 · 880 阅读 · 0 评论