这题其实很水,但是我做了好久都一直是WA,怎么测大数据都对,后来发现了一件事,这题我在处理的时候是一次性处理两步的那种,也就是当分子分母只有一个数的时候,是没有算的,之前一直没有想到,真是烦死了,还是水平太菜了,哎,得加强努力啊
#include <iostream>
#include <string.h>
using namespace std;
int T;
long long a[20],b[20];
int n;
long long gcd(long long x,long long y)
{
return y?gcd(y,x%y):x;
}
int main()
{
ios::sync_with_stdio(false);
int cases=1;
cin>>T;
while(T--)
{
cin>>n;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i=1; i<=n; i++)
cin>>a[i];
for(int i=1; i<=n; i++)
cin>>b[i];
long long nn=n;
long long fz=b[nn];
long long fm=a[nn];
long long fz2=fz,fm2=fm;//这块原来赋成1,当分子分母都只有一个的时候,就只能根据这个算了,所以不能赋成1
for(int i=nn-1; i>=1; i--)
{
fz2=b[i]*fm;
fm2=fm*a[i]+fz;
long long chu=gcd(fz2,fm2);
fz=fz2/chu;
fm=fm2/chu;
}
long long g=gcd(fz2,fm2);
fz=fz2/g;
fm=fm2/g;
cout<<"Case #"<<cases++<<": ";
cout<<fz<<" "<<fm<<endl;
}
return 0;
}