![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程之美
钢琴冰指
这个作者很懒,什么都没留下…
展开
-
编程之美-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 · 624 阅读 · 0 评论 -
编程之美-2.7、最大公约数问题
#include "stdafx.h"#includeusing 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 · 669 阅读 · 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 · 598 阅读 · 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 · 614 阅读 · 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 · 815 阅读 · 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 · 908 阅读 · 0 评论 -
编程之美-2.1、求二进制数中1的个数
#include "stdafx.h"//method 1int 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 · 698 阅读 · 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 · 769 阅读 · 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 · 712 阅读 · 0 评论 -
编程之美-2.6、精确表达浮点数
#include "stdafx.h"#include#includeusing 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 · 835 阅读 · 0 评论