Fraction
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 687 Accepted Submission(s): 380
As a talent, can you figure out the answer correctly?
For each test case, the first line contains only one integer n ( n≤8 ).
The second line contains n integers: a1,a2,⋯an(1≤ai≤10 ).
The third line contains n integers: b1,b2,⋯,bn(1≤bi≤10) .
You should promise that p/q is irreducible.
1 2 1 1 2 3
Case #1: 1 2HintHere are the details for the first sample:2/(1+3/1) = 1/2
就是一个简单的模拟题,不过要注意输入,是T组数据,每组N个。
链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5912
代码如下:
#include<iostream> #include<cstring> #include<algorithm> using namespace std; int a,b; int an[15],bn[15]; void dfs(int aan,int as,int ax,int bbn,int deep) { if(deep==0){a=as;b=ax*bbn;return;} else{ int asd=ax; ax=as; as=asd*bbn+aan*as; return dfs(an[deep-1],as,ax,bn[deep],deep-1); } } int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } int main(){ int t;int n;int icase=1;cin>>t; while(t--) { memset(an,0,sizeof(an)); memset(bn,0,sizeof(bn)); cin>>n; for(int i=1;i<=n;i++) cin>>an[i]; for(int i=1;i<=n;i++) cin>>bn[i]; dfs(an[n-1],an[n],1,bn[n],n-1); int gong=gcd(a,b); b=b/gong;a=a/gong; cout<<"Case #"<<icase++<<": "<<b<<" "<<a<<endl; } return 0;}