【问题描述】 编写程序,从控制台读入一个分数的分子和分母(分数无符号,并且分子小于分母,其大小不会超过int数据类型的表示范围),输出化简后分子和分母不含公约数的分数。 【输入形式】 从控制台输入两个正整数分别表示分子和分母,两整数之间以一个空格分隔。 【输出形式】 在标准输出上输出化简后的分子和分母,以一个空格分隔。 【输入样例1】 26664 479952 【输出样例1】 1 18 【样例1说明】 输入的分子为26664,分母为479952,分母可以被分子整除,输出化简后的分子为1,分母为18。 【输入样例2】 9 24 【输出样例2】 3 8 【样例2说明】 输入的分子为9,分母为24,化简后分子和分母分别为3和8,不含公约数。
时间: 2023-06-08 17:04:45 浏览: 220
代码如下:
```
#include<iostream>
using namespace std;
int gcd(int a, int b) { // 辗转相除法求最大公约数
return b == 0 ? a : gcd(b, a % b);
}
int main() {
int a, b;
cin >> a >> b;
int div = gcd(a, b);
cout << a / div << " " << b / div << endl; // 输出化简后的分数
return 0;
}
```
相关问题
编写程序,从控制台读入一个分数的分子和分母(分数无符号,并且分子小于分母,其大小不会超过int数据类型的表示范围),输出化简后分子和分母不含公约数的分数。
好的,根据你的要求,可以使用以下的C++代码实现:
```
#include <iostream>
#include <algorithm>
using namespace std;
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
int main() {
int numerator, denominator;
cin >> numerator >> denominator;
int divisor = gcd(numerator, denominator);
numerator /= divisor;
denominator /= divisor;
cout << numerator << "/" << denominator << endl;
return 0;
}
```
这段代码会读入一个分数的分子和分母,然后通过最大公约数来化简分数,最后输出化简后的分子和分母,确保它们不含有任何公约数。
java编写程序,从控制台读入一个分数的分子和分母(分数无符号,并且分子小于分母,其大小不会超过int数据类型的表示范围),输出化简后分子和分母不含公约数的分数。
```java
import java.util.Scanner;
public class FractionSimplifier {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the numerator: ");
int numerator = input.nextInt();
System.out.print("Enter the denominator: ");
int denominator = input.nextInt();
// find the greatest common divisor
int gcd = findGCD(numerator, denominator);
// simplify the fraction
numerator /= gcd;
denominator /= gcd;
System.out.println("The simplified fraction is: " + numerator + "/" + denominator);
}
/**
* Find the greatest common divisor of two numbers using Euclid's algorithm
* @param a the first number
* @param b the second number
* @return the greatest common divisor
*/
public static int findGCD(int a, int b) {
if (b == 0) {
return a;
} else {
return findGCD(b, a % b);
}
}
}
```
注意,我们使用了递归算法来求最大公约数。如果不熟悉递归,可以先学习递归的概念和原理。
阅读全文