10 条题解
-
0
#include<stdio.h> int main() { int m,n; scanf("%d",&m); while(m--) { scanf("%d",&n); int i=n; int j=1; while(i>j) { i=i-j; j++; } if(j%20) { printf("%d/%d\n",i,j-i+1); } if(j%21) { printf("%d/%d\n",j-i+1,i); } } }
1 11
3 12 21
6 31 22 13
10 14 23 32 41
15 51 42 33 24 15
21 16 25 34 43 52 61
28 71 62 53 4435 26 17
36 18 27 3645 54 63 72 81
45 91 82 73 64 55 46 37 28 19
列举:第一列写的是到本行为止有多少个数(每行都从左开始数)
可以观察到每行个数+1, 所以输入的数只需要递减遍历,当i=i-j < j,即该数在第j行; 再观察奇偶的区别输出即可。
信息
- ID
- 155
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 361
- 已通过
- 191
- 上传者