题目描述
小俞同学,最近勤学苦练数学,对一种数表产生了兴趣。
数表如下:
1/1 1/2 1/3 1/4 1/5
2/1 2/2 2/3 2/4
3/1 3/2 3/3
4/1 4/2
5/1
她冥思苦相了好久,貌似摸到了一点规律,但是她不知道自己的规律找的对不对,所以需要你来写一个程序来判断。
输入格式
每行一个n(1<=n<232).
输出
对于输入的n,输出第n项。
第一项:1/1
第二项:1/2
第三项: 2/1
第四项:3/1
第五项:2/2.
样例输入
3
14
7
12345
样例输出
2/1
2/4
1/4
59/99
#include<stdio.h>
#include<math.h>
int main(){
long long n,k,s;
while(~scanf("%lld",&n)){//不能用int,明明没超出int型,不知为何不能用!!!
k=(int)floor((sqrt(8.0*n+1)-1)/2-(1e-9))+1;
s=k*(k+1)/2;
if(k%2==1) printf("%lld/%lld\n",s-n+1,k-s+n);
else printf("%lld/%lld\n",k-s+n,s-n+1);
}
return 0;
}