C++请设计算法,求解一个整数n(1<n<=100)返回所有0到1之间(不包括 0和1)满足分母小于等于n的最简分数,分数可以以任意顺序返回。 用结构化程序设计方法编程验证算法的正确性。 输入格式:输入若干个正整数,最后以0结束,输入数据之间由一个空格分隔。 输出格式:每行输出对应输入中每个整数对应的计算结果,每个最简分数之间以空格符隔开。
时间: 2024-03-09 17:51:46 浏览: 177
一个c++程序设计,包括算法与数据结构
以下是 C++ 的算法实现:
```cpp
#include<iostream>
using namespace std;
// 求最大公约数
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
int main() {
int n;
while(cin >> n && n != 0) {
for(int i = 2; i <= n; i++) {
for(int j = 1; j < i; j++) {
if(gcd(i, j) == 1) {
cout << j << "/" << i << " ";
}
}
}
cout << endl;
}
return 0;
}
```
首先读入一个整数 n,表示分母不超过 n。然后从 2 开始枚举分母 i,对于每个分母 i,枚举分子 j。若分子和分母互质,则说明这是一个最简分数,输出即可。
阅读全文