分数代表整体的一部分,或更一般的,任何数量化相等的一部分。
分数是一个整数a和一个正整数b的不等于整数的比。
在一般的数值计算中,一般把分数计算为实数表示然后进行计算,但是有些对精度要求特别高的计算过程中,我们就需要用到分数了。
一个简单的小例子,输入分数 a/b , c/b,输出结果 a/b * c/b,要求用输出用分数表示。
输入:整数a,b,c,d
输出:分数相乘的结果。
运行结果:
分数类 本类实现了分数的一些基本功能,如输入输出,赋值,加减乘除四则运算,约分,比较大小功能。
首先是辅助宏的定义:
#define POSITIZE 1 //正位(含0)
#define NEGATIVE -1 //负位
typedef long long int LL;
用到的辅助函数:
LL gcd(LL a, LL b)
{
return (b == 0) ? a : gcd(b, a%b);
}
LL lcm(LL a, LL b)
{
return a / gcd(a, b) * b;
}
下面我们来看分数类的定义。
<