用c++编写一个给分数约分的程序
3个回答
展开全部
先求出分子和分母的最大公约数,用下面这段代码(m和n分别是分子和分母)
a=(m<n)?m:n;
while(1)
{if(m%a==0&&n%a==0)break;
a--;
}
最后的a就是最大公约数,再用m和n都除以a就可以了
a=(m<n)?m:n;
while(1)
{if(m%a==0&&n%a==0)break;
a--;
}
最后的a就是最大公约数,再用m和n都除以a就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<bits/stdc++.h>
using namespace std;
long long FGCD(long long x,long long y)//求最大公约数
{
long long _x=x,_y=y,r;
while(_y)//利用辗转法,除数为0结束
{
r=_x%_y;
_x=_y;
_y=r;
}
return _x;//返回它们的最大公约数
}
int main()
{
long long x,y;
printf("请输入一个分数(格式:分子/分母)\n");
scanf("%i/%i",&x,&y);
long long GCD=FGCD(x,y);//将GCD设为x与y的最大公约数
printf("%i/%i",x/GCD,y/GCD);//分别用x与y除以GCD
return 0;
}
using namespace std;
long long FGCD(long long x,long long y)//求最大公约数
{
long long _x=x,_y=y,r;
while(_y)//利用辗转法,除数为0结束
{
r=_x%_y;
_x=_y;
_y=r;
}
return _x;//返回它们的最大公约数
}
int main()
{
long long x,y;
printf("请输入一个分数(格式:分子/分母)\n");
scanf("%i/%i",&x,&y);
long long GCD=FGCD(x,y);//将GCD设为x与y的最大公约数
printf("%i/%i",x/GCD,y/GCD);//分别用x与y除以GCD
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询