首页 > 编程知识 正文

最简真分数与最简分数,最简真分数的个数

时间:2023-05-06 19:09:25 阅读:265975 作者:4657

来源

元培-From Whf

描述

所谓最简真分数是指分子小于分母,且不能约分的分数。给定 n(1 < n < 200)个非负整数(每个整数不超过3位),哪两个整数分别作为分子和分母能够构成最简真分数。输出所有的最简真分数组合;若没有,则输出NO。

关于输入

第1行为正整数个数n
其后为n个非负整数,空格间隔。

关于输出

输出所有最简真分数,分子小的排在前面;若分子相同,分母小的排在前面。各分数之间用逗号间隔。
若没有,则输出NO

例子输入

8
3 7 11 0 5 13 15 9

例子输出

3/5,3/7,3/11,3/13,5/7,5/9,5/11,5/13,7/9,7/11,7/13,7/15,9/11,9/13,11/13,11/15,13/15

#include<stdio.h>int chu(int a, int b) {int temp = 0;if (a > b) {temp = a;a = b;b = temp;}int flag = 0;for (int i = 2; i <= a; i++){if (b%i == 0 && a%i == 0)flag = 1;}if (flag == 0)return 1;else return 0;}int main(){int flagfin = 0;int a[200] = { 0 };int n = 0;scanf("%d", &n);for (int i = 0; i < n; i++) {scanf("%d", &a[i]);}int temp = 0;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (a[j] > a[j + 1]) {temp = a[j];a[j] = a[j + 1]; a[j + 1] = temp;}}}int flag = 0;for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {if(a[i]!=a[j]&&a[i]!=0&&a[j]!=0){if (chu(a[i], a[j]) == 1 &&flag==0){printf("%d/%d", a[i],a[j]);flag = 1;flagfin = 1;}else if (chu(a[i], a[j]) == 1 && flag != 0 ) {printf(",%d/%快三最准高手教学1; j++) {if (a[j] > a[j + 1]) {temp = a[j];a[j] = a[j + 1]; a[j + 1] = temp;}}}int flag = 0;for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {if(a[i]!=a[j]&&a[i]!=0&&a[j]!=0){if (chu(a[i], a[j]) == 1 &&flag==0){printf("%d/%d", a[i],a[j]);flag = 1;flagfin = 1;}else if (chu(a[i], a[j]) == 1 && flag != 0 ) {printf(",%d/%d", a[i],a[j]);}}}}if (flagfin == 0)printf("NO");return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。