zoukankan      html  css  js  c++  java
  • pku3219二项式系数

    1.统计因子2的个数

    借鉴一个数学方法:统计数为n的因子为i的个数(与下面所述等同)

    计算1~n之间包含一个因子i的个数的简单算法就是:
    cnt = 0; while (n) { n /= i; cnt += n; }

    代码如下:

    #include<stdio.h>
    int main()
    {
     int a,b,c,m,n,k;
     while(scanf("%d %d",&n,&k)==2)
     {
      m=n-k;a=b=c=0;
      while(n=n>>1) a+=n;
      while(m=m>>1) b+=m;
      while(k=k>>1) c+=k;
      if(a>b+c)
       printf("0\n");
      else
       printf("1\n");
     }
     return 0;
    }

    2.利用一个公式

    如果(N & k) == k,那么就是1,否则是0(看不懂

    先写在这边

    代码如下:

    #include<stdio.h>
    int main()
    {
     int n,k;
     while(scanf("%d %d",&n,&k)==2)
     {
      printf("%d\n",(n & k)== k?1:0);
     }
     return 0;
    }

    题目如下:

    二项式系数C(n, k)因它在组合数学中的重要性而被广泛地研究。二项式系数可以如下递归的定义:

    C(1, 0) = C(1, 1) = 1;
    C(n, 0) = 1对于所有n > 0;
    C(n, k) = C(n − 1, k − 1) + C(n − 1, k)对于所有0 < kn

    给出nk,你要确定C(n, k)的奇偶性。

  • 相关阅读:
    JavaScript作用域学习笔记
    Object.prototype.toString.call() 区分对象类型
    oracle 经典SQL整理
    day31
    ID3决策树
    C# 中浅拷贝与深拷贝区别
    C#值类型和引用类型的区别
    C#守护进程(windows服务)
    C#线程池
    C#双缓冲绘图
  • 原文地址:https://www.cnblogs.com/pandy/p/1329767.html
Copyright © 2011-2022 走看看