Homework Introduction

主要内容:

#include <iostream>  
#include <cmath>
using namespace std; 

int main(){ 
    cout << ceil(3.5) << " " << ceil(-3.5) << endl;
    
    // 向下取整
    cout << floor(3.5) << " " << floor(-3.5) << endl;
    
    // int 取整
    cout << int(3.5) << " " << int(-3.5) << endl;
    
    // 开方
    cout << sqrt(2) << " " << sqrt(9) << endl;
    
    // 乘方\幂
    cout << pow(2, 10) << endl;
    
    // 四舍五入
    cout << round(3.5) << " " << round(3.49) << endl;
    cout << int(3.5 + 0.5) << endl;
    
    // log 对数  底默认为自然数 e = 2.71828..... 无限不循环
    cout << log(2.71828) << endl;
    cout << log(10) / log(2) << endl;
    
	return 0;
}

已知两点(x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)两点间距离公式: dis = (x1x2)2+(y1y2)2\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}

编程时,可以利用换底公式求出任意对数值: logab=logb/logalog_ab=logb / loga

如果只有加、减、乘运算,求结果对m取模,可以在运算的过程中让中间结果对m取模。

例:(a+b*c)%m = (a%m + (b%m * c%m)%m)%m

唯一分解定理:

m = p1α1p_1^{\alpha_1}p2α2p_2^{\alpha_2}... pkαkp_k^{\alpha_k}

其中,p1,p2,...,pkp_1,p_2,...,p_k都是质数。

最大公约数与最小公倍数 a * b = gcd(a,b) * lcm(a,b)

lcm(a,b) = a / gcd(a,b) * b

原码反码补码:

原码:符号位加上真值, 即用第一位表示符号, 其余位表示值。

反码

  • 正数的反码与原码相同
  • 负数的反码:符号位不变,其余各位取反

补码

  • 正数的补码与原码相同
  • 负数的补码:反码加 1

Problem

Please claim the assignment to see the problems.
Status
Live...
Problem
4
Open Since
2024-2-7 0:00
Deadline
2036-8-23 23:59
Extension
24 hour(s)