题目 http://codevs.cn/problem/1083/
cantor表问题 很经典的一个数列问题 也算是不错的热身题
基本思想
每条斜线作为一个数列
第一条有1个数 第二条有2个数 第i条有i个数,等差求和n条斜线有Si = i + i*(i-1)/2
上式得到结果之后,可以知道当前想知道的第n个数时它所在斜线的第几个数
结果是x/y还是y/x取决于这条斜线是第奇数个还是第偶数个
/* 作者:FUNCO_小风 题目:p1083 Cantor表 */ #include<stdio.h> int main() { int n, x, y, last_sum = 1, sum, i; scanf("%d", &n); for(i=1; i <= n/2; i++) { sum = i+(i*(i-1))/2; if (sum >= n) { break; } last_sum = sum; } x = n - last_sum; y = i - x + 1; if (i%2) { printf("%d/%d", y, x); } else { printf("%d/%d", x, y); } return 0; }