题目描述:如下列数,第一项是1/1,第二项是1/2,第三项是2/1,第四项是3/1,第五项是2/2,..........
输入n,输出第n项。
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
样例输入:
3
14
7
12345
样例输出:
2/1
2/4
1/4
59/99
PS:数表提示我们找规律,而且规律就是按照斜线分类。若确定n在那一条斜线上的方法:找到一个最小的正整数,使和>=n,那么n就是那一条斜线,注意需要分奇数斜线和偶数斜线。
#include <iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int k;
int sum=0;
for(int i=1;; i++)
{
sum+=i;
if(sum>=n)
{
k=i;//标记是第几条斜线;
break;
}
}
int a=sum-n+1;
int b=k+1-a;
if(k%2==0)//判断是奇数还是偶数;
{
cout<<b<<"/"<<a<<endl;
}
else
{
cout<<a<<"/"<<b<<endl;
}
}
return 0;
}