题目描述
连分式是形如下面的分式,已知a,b和迭代的次数n,求连分式的值。
输入
第一行是一个整数T(1≤T≤1000),表示样例的个数。 每行一个样例,为a,b,n(1≤a,b,n≤9)
输出
每行输出一个样例的结果,使用x/y分式表达,并保证x,y互质。
样例输入
3 1 2 1 1 2 9 5 9 9
样例输出
1/2 985/2378 321047030/611590599
#include<stdio.h>
long long gcd(long long a,long long b )
{
long long t;
while(b>0)
{
t=a%b;
a=b;
b=t;
}
return a;
}
int main()
{
int t,n,i;
long long fz,fm,temp1,temp2,g,a,b;
scanf("%d",&t);
while(t--)
{
scanf("%lld %lld %d",&a,&b,&n);
fz=a;
fm=b;
if(n==1)
{
fz=a;
fm=b;
}
else
{
for(i=n-1;i>0;i--)
{
temp1=fz;
temp2=fm;
fz=a*temp2;
fm=temp2*b+temp1;
}
}
// if(fz%fm==0)//没事别手贱乱化简,否则WA到怀疑人生
// printf("%lld\n",fz/fm);
// else
// {
g=gcd(fz,fm);
fz/=g;
fm/=g;
printf("%lld/%lld\n",fz,fm);
// }
}
return 0;
}