链接:https://ac.nowcoder.com/acm/contest/50099/1031
来源:牛客网
题目描述
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
![](https://img-blog.csdnimg.cn/img_convert/84b6b2109fbea5d55b9ef2b4e5eecc46.png)
![](https://img-blog.csdnimg.cn/img_convert/6c1594fbdafbf5da03a75f329c05fd97.png)
我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…
输入描述:
整数N(1≤N≤10000000)
输出描述:
表中的第N项
示例1
输入
7
输出
1/4
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n;
cin>>n;
for(long long i=1;i<=1e6;i++){
if(i*(i+1)/2>=n){
if(i&1){
long long x=n-(i-1)*i/2;
long long y=i+1-x;
cout<<y<<"/"<<x<<endl;
}else{
long long x=n-(i-1)*i/2;
long long y=i+1-x;
cout<<x<<"/"<<y<<endl;
}
break;
}
}
}
![](https://img-blog.csdnimg.cn/img_convert/1fd9aee15ead5087fdf6a2a4b6fa4cc5.png)