现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…
输入描述 Input Description整数N(1≤N≤10000000)
输出描述 Output Description表中的第N项
样例输入 Sample Input7
样例输出 Sample Output1/4
模拟题,用flag来判断上升和下降,如果到了边界,比如分子或分母为1,就改变flag,并增加分母或分子的值
C++代码:
#include<iostream> #include<cstdio> using namespace std; int main(){ int n; cin>>n; int left = 1,right = 1; bool flag = true; for(int i = 2; i <= n; i++){ if(left == 1 && flag){ right++; flag = !flag; } else if(right == 1 && !flag){ left++; flag = !flag; } else if(flag){ left--; right++; } else{ left++; right--; } } cout<<left<<"/"<<right<<endl; return 0; }
转载于:https://www.cnblogs.com/Weixu-Liu/p/10630188.html
相关资源:JAVA上百实例源码以及开源项目