找到了一种相对简单的做法
查看原帖
找到了一种相对简单的做法
1506314
Theorist楼主2025/1/21 16:26

rt,一开始楼主并没有理解cantor表的本质导致卡题,在查看题解的过程发现大佬们的题解都很精彩,但对于我这样的小白很难理解,所以我在这里贴出来我的做法,我个人认为这种做法应该是最容易使初学者理解的了。 此外,这道题很容易错的一个点是它和原子能级表的划分方式不同>_<,要根据奇偶性进行区分。 下面是我的做法(用c++实现,思路是通用的)

#include<iostream>
using namespace std;

int main() {
	int n, a, b, i = 1, sum = 0;//核心思路就是找到这个n位于第几个斜三角,并根据奇偶性进行区分
	cin >> n;
	while (sum < n) {
		sum += i;
		i++;
	}
	sum = sum - i + 1;
	i--;//这些是为了找到n在第几个斜三角
	a = n - sum;
	b = i - a + 1;//这两行是为了确定分子和分母,观察可得到每个斜三角分子分母之和相等
	if (i % 2 == 0) {
		cout << a << "/" << b << endl;
	}
	else{
		cout << b << "/" << a << endl;
	}//根据奇偶性确定是从上往下数还是从下往上数
	return 0;
}
2025/1/21 16:26
加载中...