分析
很简单的一道找规律的题目,经过列出前几个数的两条函数可以发现,\(i\) 的\(l_2\) 就是 \(i+1\) 的\(l_1\),并且对于每一个 \(i\),它的两条直线的交点的横坐标与纵坐标都为-1,而 \(i\) 为1时的 \(l_1\) 已经与坐标原点有交点,之后每一条直线与 \(x\) 轴的交点都在一个个向左移,因此我们只需要知道最左边的那一条与 \(x\) 轴的交点,再将它除以2(三角形面积公式),再进行一次取最大公因数化简即可
代码(主要是分析,代码无看点)
#include<bits/stdc++.h>
using namespace std;
int t,n,fz,fm,gys;
inline int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
inline void read(int &res){
res=0;
int f=1;
char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){res=(res<<1)+(res<<3)+c-48;c=getchar();}
res*=f;
}
int main()
{
cin>>t;
while(t--){
read(n);
if(n<1){//特判
puts("0");continue;
}
fz=n;//分子
fm=(n+1)*2;//分母
gys=gcd(fz,fm);//最简分数
printf("%d/%d\n",fz/gys,fm/gys);
}
return 0;
}