我们比赛中经常遇到一些高频次需求:比如判断素数、判断闰年、计算阶乘等,葛老师在这里把经常出现的需求代码写成函数的形式,大家直接背下来,可以在打比赛的时候节省大量时间。:
大整数运算:
1 struct Bigint { 2 int len, a[maxn]; 3 Bigint(int x = 0) { // 初始化数值为x 4 memset(a, 0, sizeof(a)); 5 for (len = 0; x; len++) 6 a[len] = x % 10, x /= 10; 7 } 8 // 重载[],可以直接用x[i]代表x.a[i],编写时更加自然 9 int &operator[](int i) { return a[i]; } 10 void flatten(int L) { // 处理进位 11 len = L; 12 for (int i = 0; i < len; i++) 13 a[i + 1] += a[i] / 10, a[i] %= 10; 14 for (; !a[len];) 15 len--; 16 } 17 void print() { 18 for (int i = max(len-1, 0); i >= 0; i--) 19 printf("%d", a[i]); // 若数值为0,也需要输出0 20 } 21 };
标签:必背,比赛,10,int,代码,重用,len,void From: https://www.cnblogs.com/geyang/p/16837407.html