hdu 5912 Fraction(除法迭代)
2016-10-07 15:31
351 查看
点击打开链接
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;
const int M=1e3+20;
typedef long long ll;
int a[M],b[M];
int gcd(int a,int b)
{
if(a%b==0)
return b;
else
return gcd(b,a%b);
}
int main()
{
int t;
cin>>t;
// b[i]/(a[i]+x/y)
//先通分 除法有精度,在移分母
//新的分子分母 y=a[i]*y+x ,x=b[i]*y
for(int cas=1;cas<=t;cas++)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
cin>>b[i];
int x=b
,y=a
;//分子分母
for(int i=n-1;i>=1;i--)
{
x+=y*a[i];//通分
int tmp=y;
y=x;
x=b[i]*tmp;
// b[i]/(a[i]+x/y)
//先通分 除法有精度,在移分母
//新的分母分子 y=a[i]*y+x ,x=b[i]*y
}
int d=gcd(x,y);
x/=d;
y/=d;
printf("Case #%d: %d %d\n",cas,x,y);
}
return 0;
}
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;
const int M=1e3+20;
typedef long long ll;
int a[M],b[M];
int gcd(int a,int b)
{
if(a%b==0)
return b;
else
return gcd(b,a%b);
}
int main()
{
int t;
cin>>t;
// b[i]/(a[i]+x/y)
//先通分 除法有精度,在移分母
//新的分子分母 y=a[i]*y+x ,x=b[i]*y
for(int cas=1;cas<=t;cas++)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
cin>>b[i];
int x=b
,y=a
;//分子分母
for(int i=n-1;i>=1;i--)
{
x+=y*a[i];//通分
int tmp=y;
y=x;
x=b[i]*tmp;
// b[i]/(a[i]+x/y)
//先通分 除法有精度,在移分母
//新的分母分子 y=a[i]*y+x ,x=b[i]*y
}
int d=gcd(x,y);
x/=d;
y/=d;
printf("Case #%d: %d %d\n",cas,x,y);
}
return 0;
}
相关文章推荐
- HDU-5912 Fraction(迭代)
- HDU 5912 - Fraction
- hdu 5912 Fraction
- HDU 5912 Fraction(模拟——分子式化简求解)
- HDU 5912 Fraction 【模拟】 (2016中国大学生程序设计竞赛(长春))
- hdu 5912 Fraction 2016中国大学生程序设计竞赛(长春) 水题
- HDU 5912 Fraction【模拟】(2016中国大学生程序设计竞赛(长春)B题)
- HDU 5912 Fraction 【模拟】 (2016中国大学生程序设计竞赛(长春))
- 模拟:Fraction HDU - 5912
- HDU 5912 Fraction 【模拟】
- HDU-5912-Fraction
- HDU 5912 Fraction (模拟)
- hdu 5912(迭代+gcd)
- hdu 5912 Fraction -2016中国大学生程序设计竞赛(长春)
- HDU 5912 Fraction 模拟题 【2016中国大学生程序设计竞赛(长春)】
- hdu 5912Fraction
- hdu 5912 Fraction 模拟题
- hdu 5912 Fraction
- HDU 5912 Fraction (2016-ccpc-长春)
- hdu 5912 Fraction