有趣的数

 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 }

 

转载于:https://www.cnblogs.com/a604378578/p/3608862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值