
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;
}
该博客展示了两种计算循环序列并判断其分子分母互质性的方法。第一种方法涉及复杂的循环和约分过程,而第二种方法进行了简化,通过循环累加生成序列,并直接输出结果。程序最后验证了生成的分数的最大公约数是否为1,以确认它们是否互质。

2522

被折叠的 条评论
为什么被折叠?



