zoukankan      html  css  js  c++  java
  • 数论(easy版)

    1、最大公因数,最小公倍数

    用辗转相除法

    int gcd(int a,int b)
    {
      if (b==0) return a;
      else return gcd(b,a%b);
    }

    而最小公倍数=(a*b)/gcd(a,b)

    2、快速幂

    快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。

    在结果上往往要求模某个数。

    long long ksm(long long  b,long long p,long long k){
      long long  ans=1;
      while(p){
        if(p&1){
        ans=ans*b%k;
        }
        p>>=1;
        b=b*b%k;
      }
      return ans%k;
    }

    3、进制转换

    进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。 基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。 位权是指,进位制中每一固定位置对应的单位值。

    k进制转10进制   把每位上的数乘k^i-1

    10进制转k进制 把10进位数除以k的余数得到k进制的最后一位 再用原数除以k后的数再除k得余数的倒数第二位……以此类推一直除到为一 得到k进位制数,

  • 相关阅读:
    如何将一个整数分散成百分位、千分位等
    好用的竖直无缝滚动
    图片轮播插件
    新浪sae授权流程的理解
    js和php对数字格式化
    控制input表单的输入的字数
    真实的恐怖(转载)
    日本的寒暑假+春假
    也不知道你今天的路线是怎么样的
    关于中日区别
  • 原文地址:https://www.cnblogs.com/zhaoxuelin/p/12457996.html
Copyright © 2011-2022 走看看