题解 | 最简真分数

最简真分数

https://www.nowcoder.com/practice/1f1db273eeb745c6ac83e91ff14d2ec9

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<iostream>
#include<vector>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;

//给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。

//每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000。

//每行输出最简真分数组合的个数。

//思路: 先输入n个数组成的数组。
//       采用穷举法,arr[0] 和arr[1--n-1] 进行比较
//      比较方法:判断是否有除了1以外的公因子,若有,则sum++,否则继续比较


int compare(int a, int
            b) { //比较方法:判断是否有除了1以外的公因子,若有,则sum++,否则继续比较
    int maxNum;
    for (int i = 1; i <= min(a, b); i++) {
        if ((a % i == 0) && (b % i == 0)) {
            maxNum = i;
        }
    }
    return maxNum;
}

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        if (n == 0) {
            break;
        }
        vector<int> arr;
        for (int i = 0; i < n; i++) { //先输入n个数组成的数组。
            int m;
            scanf("%d", &m);
            arr.push_back(m);
        }
        //  采用穷举法,arr[0] 和arr[1--n-1] 进行比较 以此类推
        int sum = 0;
        for (int i = 0; i < n; i++) {
            for (int j = i + 1; j < n; j++) {
                if (compare(arr[i], arr[j]) == 1) sum++;;
            }
        }
        printf("%d\n", sum);
    }
    return 0;
}

全部评论

相关推荐

05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务