问题描述:
求。
题目链接:CodeForces 197B
思路:
根据给出的样例输入输出,来编写代码。
如果给出的分子分母指数相等,当第一个系数同号时:直接输出分子分母第一个系数的比值;异号时:输出‘-’第一个系数的比值;
当分子指数大于分母指数时:同号时输出“Infinity”,异号时输出:“-Infinity”;
当分子指数小于分母指数时:输出“0/1”。
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<queue>
#include<cstring>
#include<algorithm>
#define INF 0x3f3f3f3f
#define MAX 110
using namespace std;
int yueshu(int a, int b){
int t = 0;
if(a > b){
t = b;
b = a;
a = t;
}
while(a % b != 0)
{
t = a % b;
a = b;
b = t;
}
return b;
}
int main(){
int m, n;
while(~scanf("%d%d", &m, &n) ){
int s[MAX], ss[MAX];
for(int i = 0; i <= m; i++)
cin >> s[i];
for(int i = 0; i <= n; i++)
cin >> ss[i];
if(m > n && s[0] * ss[0] > 0){
cout << "Infinity" << endl;
continue;
}
if(m > n && s[0] * ss[0] <= 0){
cout << "-Infinity" << endl;
continue;
}
if(m < n){
printf("0/1\n");
continue;
}
if(m == n && s[0] * ss[0] > 0){
int res = yueshu(s[0], ss[0]);
printf("%d/%d\n", s[0]/res, ss[0]/res);
continue;
}
if(m == n && s[0] * ss[0] <= 0){
s[0] = fabs(s[0]);
ss[0] = fabs(ss[0]);
int res = yueshu(s[0], ss[0]);
printf("-%d/%d\n", s[0]/res, ss[0]/res);
continue;
}
}
return 0;
}