3389 - cantor表
时间限制 : 1 秒
内存限制 : 128 MB
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
<span> </span><span style="line-height:1.5;">我们以</span><span style="line-height:1.5;">Z</span><span style="line-height:1.5;">字形给上表的每一项编号。第一项是</span><span style="line-height:1.5;">1/1</span><span style="line-height:1.5;">,然后是</span><span style="line-height:1.5;">1/2</span><span style="line-height:1.5;">,</span><span style="line-height:1.5;">2/1</span><span style="line-height:1.5;">,</span><span style="line-height:1.5;">3/1</span><span style="line-height:1.5;">,</span><span style="line-height:1.5;">2/2</span><span style="line-height:1.5;">,…</span>
题目输入
整数N(1≤N≤10000000)
题目输出
表中的第N项
输入/输出样例
输入格式
7
输出格式
1/4
C++解答
#include<iostream> using namespace std; int main() { long h,fz,fm,n,sum=0; cin>>n; h=0; sum=0; while(sum<n) { h++; sum+=h; } sum-=h; int m;//表示第m项 m=n-sum; if(h&1) { fm=m; fz=h+1-m; } else { fz=m; fm=h+1-m; } cout<<fz<<'/'<<fm<<endl; return 0; }