1 /*描述 2 把分数按下面的办法排成一个数表。 3 4 1/1 1/2 1/3 1/4..... 5 2/1 2/2 2/3.... 6 3/1 3/2 .... 7 4/1..... 8 ......... 9 我们以z字型方法给上表的每项编号。特定方法:第一项是1/1,然后是1/2、2/1、3/1、2/2、1/3、1/4、2/3……。 10 编程输入项号N(1<=N<=100000),输出表中第N项。 11 12 输入 13 第一行有一个整数m(0<m<=10),表示有m组测试数据; 14 随后有m行,每行有一个整数N; 15 输出 16 输出表中第N项 17 样例输入 18 4 19 3 20 14 21 7 22 12345 23 样例输出 24 2/1 25 2/4 26 1/4 27 59/99 28 */ 29 #include<stdio.h> 30 #include<math.h> 31 int main() 32 { 33 int m; 34 scanf("%d",&m); 35 while(m--) 36 { 37 int n, t, a; 38 scanf("%d",&n); 39 t=sqrt(n*2); 40 if(t*(t+1)/2 < n) 41 t++; 42 a=t*(t+1)/2-n; 43 if(t%2==1) 44 printf("%d/%d\n",a+1,t-a); 45 else 46 printf("%d/%d\n", t-a, a+1); 47 } 48 return 0; 49 }