http://oj.ecustacm.cn/problem.php?id=1359
#include<cstdio>
#include<cstring>
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int main(void)
{
long long int zi=3;
long long int mu=2;
long long int n=2;
for(int i=2;i<=3;i++)
{
n*=2;
zi=zi*n+mu;
mu=mu*n;
while(zi%2==0&&mu%2==0)//简单的约分,避免数字过大
{
zi=zi/2;
mu=mu/2;
}
while(zi%3==0&&mu%3==0)
{
zi=zi/5;
mu=mu/5;
}
}
printf("%lld / %lld\n",zi,mu);
printf("%lld",gcd(zi,mu));//看一下最大公约数是不是1,来判断是否互质
return 0;
}
不过上面那种太麻烦了
简化版
#include<stdio.h>
int main()
{
int i,j,b=1,c=0,a=1;
for(i=1;i<20;i++)
{
a = a*2;
b += a;
}
printf("%d/%d\n",b,a);
return 0;
}