zoukankan      html  css  js  c++  java
  • 微软编程

    二进制数中的1的个数:

    利用位运算:

    int count(int v)

    {

    int num;

    while(V)

    {

    num=v&0x01;

    v>>=1;

    }

    return num;

    }

    计算N!末尾零的个数:

    3.给定一个整数N,计算1的个数:

    int count(int n)

    {

    int index=1;//位数

    int cur=0;

    int lower=higher=0;

    while(n/index!=0)

    {

    low=n-(n/index)*index;

    curr=(n/index)%10;

    high=n/(index*10);

    switch(cur)

    {

    case 0:

       count+=high*index;

    break;

    case 1:

      count+=high*index+low+1;

    break;

    default:

     count+=(high+1)*index;

    break;

    }

    index*=10;

    }

    return count;

    }

    4.最小的K个数:

    利用快速排序来做;

    void getleastNnmber(int *input,int n,int*output,int k)

    {

    if(input==NULL||output==NULL||n<=0||lk<=0||k>n)

    return ;

    int start=0;

    int end=n-1;

    int index=partion(input,n,start,end);

    while(index!=k-1)

    {

    if(index>k-1)

    {

    end=k-1;

    index=partion(input,n,start,end);

    else
    {

    start=k+1;

    index=partion(input ,n,start,end);

    }

    }

    }

    找两个数的最大公约数:

    int gcd(int x,int y)

    {

     return (!y)?x:gcd(y,x%y);

    }

     5.快速寻找满足条件的两个数:数组中两个数字之后等于给定值:

  • 相关阅读:
    数据库
    流式布局
    ScrollView简单用法
    ADB被占用解决办法
    安卓中shape中的属性大全
    sql语句replace into的用法
    debug
    大数据量数据库优化
    Gson解析后的数据存到本地数据库 耗时的问题
    数据同步异步加载handler Looper
  • 原文地址:https://www.cnblogs.com/mmziscoming/p/5768079.html
Copyright © 2011-2022 走看看