是输入输出的小技巧和细节们

scanf 的读入规则

  • 如果上一个读入的是数字,本次就会停留在缓冲区中第一个非数字字符处。例如:
    123[空格]456
    第一次 scanf("%d"), 缓冲区指针会停留在[空格]处
    第二次 scanf("%d"), 缓冲区指针会停留在   处
  • 对应技巧:

    1 2 3 4 5
    A 1 5 4
    M 3 5 1
    A 1 5 4

    例如上面这种的,要读入那个字母,scanf("%s",in);  in[0]就是辣个字母拉。

数字范围

  • int的范围有符号的是2^31,十进制是2147483648  , 1e9
  • long long 的范围有符号的是2^62,十进制是4611686018427387904 , 1e18

内存大小

  • 位(bit)              是电子计算机中最小的数据单位。每一位的状态只能是0或1。
  • 字节(Byte)      8个二进制位构成1个字节
  • 8bit(位)=1Byte(字节)

    1024Byte(字节)=1KB

    1024KB=1MB

    1024MB=1GB

  • int一般是4个字节,ll八个字节

printf技巧

  • printf ( " %.0lf " , x )   输出浮点数的整数部分,省略全部小数部分(以及小数点)
  • 上面这样输出貌似比直接强制类型转换输出精度要高

lower_bound和upper_bound

  • 怎么寻找一个小于等于x的数:upper_bound(begin,end+1,x) - begin -1
  • lower是找第一个>=x的数
  • upper是找第一个>x的数
原文地址:https://www.cnblogs.com/jiecaoer/p/11260376.html