分析

很简单的一道找规律的题目,经过列出前几个数的两条函数可以发现,\(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;
}
posted on 2021-08-28 21:14  漠寒·  阅读(42)  评论(0编辑  收藏  举报