Skip to content

Commit 7b4f589

Browse files
author
alexc
committed
完成 P1014 题目。
1 parent fc2b0bc commit 7b4f589

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,6 @@
3232
*.app
3333

3434
build/
35+
CMakeLists.txt
36+
.vscode
37+
cmake-build-debug

P1014.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
}

0 commit comments

Comments
 (0)