有趣的数
2018-01-25 21:38
96 查看
描述
把分数按下面的办法排成一个数表。
① ② ⑥ ⑦
1/1 1/2 1/3 1/4…..
③ ⑤ ⑧
2/1 2/2 2/3….
④ ⑨
3/1 3/2 ….
⑩
4/1…..
………
我们以z字型方法给上表的每项编号。特定方法:第一项是1/1,然后是1/2、2/1、3/1、2/2、1/3、1/4、2/3……。编程输入项号N(1<=N<=100000),输出表中第N项。
输入
第一行有一个整数m(0< m<=10),表示有m组测试数据;
随后有m行,每行有一个整数N;
输出
输出表中第N项
样例输入
4
3
14
7
12345样例输出
2/1
2/4
1/4
59/99
int main()
{
int b, a;
scanf(“%d”, &b);
while(b–)
{
int k = 0, sum = 0, c;
scanf(“%d”, &a);
while(sum < a)
{
sum += k;
k++;
}
c = sum - a;
if(k % 2)
printf(“%d/%d”, k-1-c, c+1);
else
printf(“%d/%d”, c+1, k-1-c);
printf(“\n”);
}
}
把分数按下面的办法排成一个数表。
① ② ⑥ ⑦
1/1 1/2 1/3 1/4…..
③ ⑤ ⑧
2/1 2/2 2/3….
④ ⑨
3/1 3/2 ….
⑩
4/1…..
………
我们以z字型方法给上表的每项编号。特定方法:第一项是1/1,然后是1/2、2/1、3/1、2/2、1/3、1/4、2/3……。编程输入项号N(1<=N<=100000),输出表中第N项。
输入
第一行有一个整数m(0< m<=10),表示有m组测试数据;
随后有m行,每行有一个整数N;
输出
输出表中第N项
样例输入
4
3
14
7
12345样例输出
2/1
2/4
1/4
59/99
代码如下
#include< stdio.h>int main()
{
int b, a;
scanf(“%d”, &b);
while(b–)
{
int k = 0, sum = 0, c;
scanf(“%d”, &a);
while(sum < a)
{
sum += k;
k++;
}
c = sum - a;
if(k % 2)
printf(“%d/%d”, k-1-c, c+1);
else
printf(“%d/%d”, c+1, k-1-c);
printf(“\n”);
}
}
相关文章推荐
- C++标准库的一个有趣的小bug
- 有趣的 CSS 题目(3): 层叠顺序与堆栈上下文知多少
- 有趣Logo图片: tux-pcbypaul和tux-ondolphin
- 人工智能和机器学习领域的一些有趣的开源项目
- (原創) 一個關於C語言字串有趣的小題目 (C/C++) (C)
- 你值得了解的 10 个有趣的 Linux 命令行小技巧
- 一个有趣的SQL问题。
- 好看的人太多,有趣的人太少
- 男人和女人16个有趣的心理差别
- bzoj 1485 [HNOI2009]有趣的数列
- 几个有趣的javascript
- 【BZOJ1444】[Jsoi2009]有趣的游戏 AC自动机+概率DP+矩阵乘法
- 有趣Logo图片: tux-pcbypaul和tux-ondolphin
- 《第四次革命》:3星。关于人工智能的有趣事实与畅想。
- 有趣的缩写
- 有趣的算法问题12——跳跃游戏1(贪心算法)
- 有趣的Windows
- 有用有趣的站点
- 史上最有趣的Readme
- 一种星期计算方法和由此开始的有趣事情