洛谷1014
- 题意:

- 解题思路:对于Contor输出,每一斜行的输出为等差数列,分别输出1个,2个 ,3个,4个,,,,
所以先确定输入的整数N值在哪一斜行。
具体为:当在第i行: 第(i-1)行之和<= N <=第i行之和
之后判断所在行为奇数行还是偶数行。
奇数行:i + 1 - x/x偶数行:x /i + 1 - x - 代码:
/*数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的 */ #include<iostream> #include<stdio.h> #include<string.h> #define max 10000 using namespace std; int main() { int n; cin >> n; if (n == 0) return 0; int sum = 0; for (int i = 1; i < max; i++) { if ((sum < n) && (n <= sum + i)) //利用等差和的性质 { //cout << "在第" << i << "行" << endl; if ((i % 2) == 0)//偶数行 { int x = n - sum; cout << x << '/'<<i + 1 - x; break; } else //奇数行 { int x = n - sum; cout << i + 1 - x <<'/'<< x; break; } } else sum += i; } }

浙公网安备 33010602011771号