10 条题解
-
0
#include <stdio.h>
int main() { int m, N, n, num, den, k; scanf("%d", &m); // 读取测试数据组数 for (int i = 0; i < m; i++) { scanf("%d", &N); // 读取每组的N值 // 计算分数的位置 n = 1; // 行数 k = 0; // 当前编号的索引 while (1) { // 当前对角线的元素数量 k += n; if (k >= N) { // 找到对应的行和列 int position = N - (k - n); // 位置在当前对角线 if (n % 2 == 0) { // 偶数行,分母递增,分子递减 num = position; den = n + 1 - position; } else { // 奇数行,分子递增,分母递减 num = n + 1 - position; den = position; } break; } n++; // 移动到下一行 } // 输出结果 printf("%d/%d\n", num, den); } }
信息
- ID
- 155
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 361
- 已通过
- 191
- 上传者