分数加和,要求使用C++,约分
时间: 2024-10-20 14:17:55 浏览: 16
分数加法通常涉及到两个分数的操作:相加和约简。在C++中,你可以创建一个类来表示分数,包括分子(numerator)和分母(denominator),然后提供相关的加法和约简函数。以下是一个简单的示例:
```cpp
#include <iostream>
#include <math.h>
class Fraction {
private:
int numerator;
int denominator;
public:
// 构造函数
Fraction(int n = 0, int d = 1) : numerator(n), denominator(d) {}
// 加法
Fraction operator+(const Fraction& other) const {
int new_num = numerator * other.denominator + other.numerator * denominator;
int new_den = denominator * other.denominator;
return Fraction(new_num, gcd(new_den, abs(other.numerator)));
}
// 约简分数
void simplify() {
int gcd_val = gcd(denominator, numerator);
if (gcd_val != 1)
numerator /= gcd_val;
denominator /= gcd_val;
}
// GCD计算
static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
// 打印分数
void print() const {
std::cout << numerator << "/" << denominator << " ";
}
};
int main() {
Fraction f1(3, 4), f2(7, 8);
f1.print(); // 输出:3/4
f2.print(); // 输出:7/8
f1 += f2; // 相加
f1.simplify(); // 约简
f1.print(); // 结果打印(假设约简后的结果)
return 0;
}
```
在这个例子中,`Fraction` 类实现了分数的基本操作,通过 `operator+` 进行加法运算,并通过 `simplify` 函数使用欧几里得算法(GCD)来约简分数。在 `main` 函数中,我们创建了两个分数对象并执行了加法和约简。
阅读全文