Description
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
Input
输入一个正整数N,1≤N≤10000000
Output
表中的第N项
Sample Input
7
Sample Output
1/4
虽然挺简单,但也有一些小技巧值得留意
//#define Night_13
#include <iostream>
using namespace std;
int main() {
#ifdef Night_13
freopen("input.txt", "r", stdin);
#endif
int n;
while (scanf("%d", &n) != EOF) {
int control = 1, per = 1, sum = 1, cnt = 1, a = 1, b = 1;
while (sum < n) {
if (cnt == per) {
++per;
cnt = 1;
if (control == 1) a = 1, b = per;
else a = per, b = 1;
control *= -1;
} else {
++cnt;
if (control == -1) ++a, --b;
else --a, ++b;
}
++sum;
}
printf("%d/%d\n", a, b);
}
return 0;
}