3010 - 小俞同学的数表
时间限制 : 1 秒
内存限制 : 128 MB
小俞同学,最近勤学苦练数学,对一种数表产生了兴趣。
数表如下:
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
C语言解答
#include<stdio.h> int main() { long long n; while(scanf("%lld",&n)!=EOF) { long long i=0; while(i<n) { n-=i; i++; } if(i%2==0) printf("%lld/%lld\n",n,i+1-n); else printf("%lld/%lld\n",i+1-n,n); } return 0; }
C++解答
#include<cstdio> #include<cstring> #include<cmath> using namespace std; int main() { long long n; while(~scanf("%lld", &n)) { long long sum = 0; for(int i = 1; ; i++) { sum += i; if(sum >= n) { if(i & 1) { printf("%lld/%lld\n", sum - n + 1, i - sum + n); } else { printf("%lld/%lld\n", i - sum + n, sum - n + 1); } break; } } } return 0; }