求一段C++分数约分程序

来源:百度知道 编辑:UC知道 时间:2024/06/30 02:53:53
分数相加
问题背景
分数的相加是一个数学上需要处理的最简单的问题。对于两个不一定已经约分的假分数,我们可以对其进行相加,加和一般也是一个假分数(或者可能直接是一个整数)。我们只考虑整数的情况,那么事实上,分数相加需要进行约分尝试。
当整数变大以后,约分往往是一个很头疼的问题。不过,我们可以用计算机帮助我们来解决。

问题描述
请根据用户输入的两个正假分数,输出相加后不可约假分数。

输入输出
输入数据样例如下:
12/27
3/9
输出如下:
7/9

因为没分,所以简单的写了个,达到你的要求。
#include <iostream>
using namespace std;

int main()
{
int x1,x2,y1,y2;
char tmp;
cout << "Enter number1(eg:12/39)";
cin >> x1 >> tmp >> y1;
cout << "Enter number2(eg:12/39)";
cin >> x2 >> tmp >> y2;

int x3,y3;
y3 = y1 * y2;
x3 = x1 * y2 + x2 * y1;

int minValue;
minValue = x3;
if (y3 < x3) minValue = y3;
for (int i = 2;i < minValue;i++)
{
if (x3%i==0 && y3%i==0)
{
x3/=i; y3/=i;
--i;
}
}

cout << "Result:" << x3 << "/" << y3;
system("pause");
}