直接模拟即可,注意结果为分数;
代码:
#include <stdio.h>
using namespace std;
const int N = 10;
int a[N],b[N];
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int main()
{
int t,n,i,x,y,z,k,p=1;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
scanf("%d",&b[i]);
y=a[n];x=b[n];
for(i=n-1;i>0;i--)
{
z=y;
y=y*a[i]+x;
x=z*b[i];
}
k=gcd(x,y);
printf("Case #%d: %d %d\n",p++,x/k,y/k);
}
return 0;
}