File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change 32
32
* .app
33
33
34
34
build /
35
+ CMakeLists.txt
36
+ .vscode
37
+ cmake-build-debug
Original file line number Diff line number Diff line change
1
+ // [NOIP1999 普及组] Cantor 表
2
+ #include < iostream>
3
+ using namespace std ;
4
+
5
+ int main ()
6
+ {
7
+ long long N,
8
+ l=0 , // 第几层
9
+ sum_n=0 ; // 前n项和
10
+
11
+ cin >> N;
12
+
13
+ for (long long i = 1 ; ; i++){
14
+ // 等差数列前 n 项和
15
+ sum_n = i * (i + 1 ) / 2 ;
16
+ // 前n项和正好大于等于给定N
17
+ if (sum_n >= N){
18
+ l = i;
19
+ break ;
20
+ }
21
+ }
22
+
23
+ // 前 n - 1 项的和
24
+ long long sum_n_1 = l * (l - 1 ) / 2 ;
25
+
26
+ long long x = l - (sum_n - N);
27
+ long long y = l - (N - sum_n_1) + 1 ;
28
+ if (l%2 == 0 ) {
29
+ // 偶数层
30
+ cout << x << " /" << y << endl;
31
+ } else {
32
+ // 奇数层
33
+ cout << y << " /" << x << endl;
34
+ }
35
+
36
+ return 0 ;
37
+ }
You can’t perform that action at this time.
0 commit comments