資源簡介
代碼片段和文件信息
#include
#include
using?namespace?std;
class?CRational{
long?num;//分子
long?den;//分母
long?gcb(long?numlong?den);//求最大公約數
void?Simplify(CRational?&r);//化簡分數
public:
CRational(long?n?long?d);//構造函數
CRational?add(CRational?r);//加法
CRational?minu(CRational?r);//減法
CRational?multi(CRational?r);//乘法
CRational?divide(CRational?r);//除法
int?getn();//獲取分數的分子
int?getd();//獲取分數的分母
};
long?CRational::?gcb(long?numlong?den)//輾轉相除法求最大公約數?利用遞歸函數
{
if(den==0)
return?num;
else
return?gcb(dennum%den);
}
void?CRational::?Simplify(CRational?&r)//化簡函數,將分數約分
{
int?a;
a=gcb(abs(r.num)abs(r.den));?//求出分子分母的最大公約數
r.num=r.num/a;//分子除以最大公約數
r.den=r.den/a;//分母除以最大公約數
}
CRational::?CRational(long?n?long?d)//構造函數,將分子和分母賦值
{
num=n;
den=d;
}
評論
共有 條評論