xtuoj 连分式
题目
思路
初始时,设置的fz=a,fm=b,这已经是一层了,所以只要迭代n-1次即可,建议每次计算出分子和分母后,进行约分,能够有效避免溢出
代码
#include<stdio.h>int a,b,n;
int fz,fm,g;int gcd(int a,int b){return b==0?a:gcd(b,a%b);
}int main(){int T;scanf("%d",&T);while(T--){scanf("%d%d%d",&a,&b,&n);fz=a,fm=b;for(int i=1;i<n;i++){int new_fz=a*fm;int new_fm=b*fm+fz;g=gcd(new_fm,new_fz);fm=new_fm/g;fz=new_fz/g;}printf("%d/%d\n",fz,fm);}return 0;
}