题目描述
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…
输入描述:
整数N(1≤N≤10000000)
输出描述:
表中的第N项
示例1
输入
7
输出
1/4
#include#include using namespace std;int main(){ int n; cin>>n; int x=1,y=1; int flag=0; while(1) { if(x==1) { y++; n--; if(n==1) break; while(y>1) { y--; x++; n--; if(n==1) { flag = 1; break; } } if(flag == 1) break; } else if(y==1) { x++; n--; if(n==1) break; while(x>1) { x--; y++; n--; if(n==1) { flag = 1; break; } } if(flag==1) break; } } cout< <<"/"<
总结:
纯模拟,没技巧,判断点为行为1或列为1