编程要求 对输入的有理数(数据由平台提供,已在主函数中获取)进行化简。 测试举例 输入 -18/52 输出 -9/26
时间: 2024-03-26 11:39:44 浏览: 43
根据题目要求,可以使用辗转相除法来求分数的最大公约数,从而将分数进行化简。
具体实现步骤如下:
1. 定义两个变量表示分子和分母,并从标准输入中读取有理数
```c++
#include <iostream>
using namespace std;
int main() {
int numerator, denominator;
cin >> numerator >> denominator;
```
2. 求分子和分母的最大公约数
```c++
int gcd = 1; // 最大公约数
for (int i = 1; i <= numerator && i <= denominator; i++) {
if (numerator % i == 0 && denominator % i == 0) {
gcd = i;
}
}
```
3. 将分子和分母分别除以最大公约数,得到化简后的分数
```c++
numerator /= gcd;
denominator /= gcd;
```
4. 输出结果
```c++
cout << numerator << "/" << denominator << endl;
```
完整的代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
int numerator, denominator;
cin >> numerator >> denominator;
// 求最大公约数
int gcd = 1;
for (int i = 1; i <= numerator && i <= denominator; i++) {
if (numerator % i == 0 && denominator % i == 0) {
gcd = i;
}
}
// 化简分数
numerator /= gcd;
denominator /= gcd;
// 输出结果
cout << numerator << "/" << denominator << endl;
return 0;
}
```
对于输入 -18/52,输出结果为 -9/26,符合要求。
阅读全文