10 条题解

  • 0
    @ 2024-11-27 17:36:41

    #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
    上传者