HDU--6668--Polynomial--(胡搞题目)

度度熊最近学习了多项式和极限的概念。
现在他有两个多项式 f(x)f(x) 和 g(x)g(x),他想知道当 xx 趋近无限大的时候,f(x)/g(x)f(x)/g(x) 收敛于多少。

Input

第一行一个整数 T (1≤T≤100)T (1≤T≤100) 表示数据组数。
对于每组数据,第一行一个整数 n (1≤n≤1,000)n (1≤n≤1,000),n−1n−1 表示多项式 ff 和 gg 可能的最高项的次数(最高项系数不一定非0)。
接下来一行 nn 个数表示多项式 ff,第 ii 个整数 fi (0≤fi≤1,000,000)fi (0≤fi≤1,000,000) 表示次数为 i−1i−1 次的项的系数。
接下来一行 nn 个数表示多项式 gg,第 ii 个整数 gi (0≤gi≤1,000,000)gi (0≤gi≤1,000,000) 表示次数为 i−1i−1 次的项的系数。
数据保证多项式 ff 和 gg 的系数中至少有一项非0。

Output

对于每组数据,输出一个最简分数 a/ba/b(aa 和 bb 的最大公约数为1)表示答案。
如果不收敛,输出 1/01/0。

Sample Input
3
2
0 2
1 0
2
1 0
0 2
3
2 4 0
1 2 0
Sample Output
1/0 
0/1 
2/1 

题意:给定多项式,求分式多项式的极限值;

思路:高等数学知识可知,只需要统计最高项的系数即可;

注意:分数处理需要f[i]/gcd(f[i],g[i]),g[i]/gcd(f[i],g[i]);

#include
#include
using namespace std;
const int MAX=1000+10;
int f[MAX],g[MAX];
int gcd(int a,int b){
	return b?gcd(b,a%b):a;
}
int main(){
	int t;
	scanf("%d",&t); 
	while(t--){
		int n;
		scanf("%d",&n);
		for(int i=0;i=0;i--)
			if(g[i]!=0&&f[i]!=0){
				cout<

 

你可能感兴趣的:(#,HDU题目)