Skip to content

Commit af648da

Browse files
committed
πŸŽ‡ Style: Better styled format for cpp codes.
1 parent fd47783 commit af648da

2 files changed

Lines changed: 70 additions & 7 deletions

File tree

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,118 @@
1-
#include "Math.h"
1+
#include "Math.h"
22

33
namespace calg {
44

5-
6-
75
EXTERN_API inline i64 max(i64 x, ...) {
6+
87
va_list xs;
8+
99
va_start(xs, x);
10+
1011
i64 tmp = va_arg(xs, i64);
12+
1113
for (int i = 1; i < x; ++i) {
14+
1215
i64 cur = va_arg(xs, i64);
16+
1317
tmp = tmp > cur ? tmp : cur;
1418
}
19+
1520
va_end(xs);
21+
1622
return tmp;
1723
}
24+
1825
EXTERN_API inline i64 min(i64 x, ...) {
26+
1927
va_list xs;
28+
2029
va_start(xs, x);
30+
2131
i64 tmp = va_arg(xs, i64);
32+
2233
for (int i = 1; i < x; ++i) {
34+
2335
i64 cur = va_arg(xs, i64);
36+
2437
tmp = tmp < cur ? tmp : cur;
2538
}
39+
2640
va_end(xs);
41+
2742
return tmp;
2843
}
44+
2945
EXTERN_API inline i64 mid(i64 a, i64 b, i64 c) {
46+
3047
i64 l = max(3, a, b, c), s = min(3, a, b, c);
48+
3149
if (a != l && a != s) return a;
50+
3251
if (b != l && b != s) return b;
52+
3353
if (c != l && c != s) return c;
54+
3455
return NULL;
3556
}
57+
3658
EXTERN_API inline void maxin(i64* max, i64* min, i64 x, ...) {
37-
va_list xs; va_start(xs, x);
59+
60+
va_list xs;
61+
62+
va_start(xs, x);
63+
3864
*max = va_arg(xs, i64), * min = va_arg(xs, i64);
65+
3966
for (int i = 3; i < x; ++i) {
67+
4068
i64 cur = va_arg(xs, i64);
69+
4170
if (cur > *max) *max = cur;
71+
4272
if (cur < *min) *min = cur;
4373
}
74+
4475
va_end(xs);
4576
}
46-
EXTERN_API inline i64 abs(i64 x) { return x < 0 ? -x : x; }
77+
78+
EXTERN_API inline i64 abs(i64 x) {
79+
80+
return x < 0 ? -x : x;
81+
}
82+
4783
EXTERN_API inline i64 pow(i64 x, i64 t) {
48-
i64 ans = 1; while (t--) ans *= x; return ans;
84+
85+
i64 ans = 1;
86+
87+
while (t--) ans *= x;
88+
89+
return ans;
4990
}
91+
5092
EXTERN_API inline i64 gcd(i64 a, i64 b) {
93+
5194
if (a == b) return a;
95+
5296
if (a < b) { i64 tmp = a; a = b, b = tmp; }
97+
5398
i64 dis = max(a, b) - min(a, b);
99+
54100
return gcd(dis, min(a, b));
55101
}
102+
56103
EXTERN_API i64 gobit(i64 x, i32 len) {
104+
57105
i64 ans = 0, cx = x;
106+
58107
for (i32 i = 0, p = 0; i < len; ++i, ++p) {
108+
59109
if (cx & 1) ans += pow(2, p);
60110
else ans <<= 1;
111+
61112
cx >>= 1;
62113
}
114+
63115
return ans;
64116
}
117+
65118
}

β€ŽCommon.Algorithm/Math/Math.hβ€Ž

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
1-
#include "../Base/base.h"
1+
#include "../Base/base.h"
22

33
namespace calg {
4+
45
const long double pi = 3.14159265358979323846;
6+
57
const long double e = 2.71828182845904523536;
68

79
EXTERN_ALL inline i64 max(i64 x, ...);
10+
811
EXTERN_ALL inline i64 min(i64 x, ...);
12+
913
EXTERN_ALL inline i64 mid(i64 a, i64 b, i64 c);
14+
1015
EXTERN_ALL inline void maxin(i64* max, i64* min, i64 x, ...);
16+
1117
EXTERN_ALL inline i64 abs(i64 x);
18+
1219
EXTERN_ALL inline i64 pow(i64 x, i64 t);
20+
1321
EXTERN_ALL inline i64 gcd(i64 a, i64 b);
22+
1423
EXTERN_ALL inline i64 gobit(i64 x, i32 len);
24+
1525
}

0 commit comments

Comments
Β (0)