题解 | #最简真分数#

最简真分数

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

//最简真分数是指分子分母的最大公因数为1的真分数
//本题不同组合即可,不需要不同组合的分数值必须不同
#include <iostream>
#include <vector>
using namespace std;
int GCD(int a,int b)
{
    if(b==0)return a;
    else{
        return GCD(b,a%b);
    }


    return 0;
}
int main() {
    int n;
    while (cin >> n) { 
        if(n==0)break;
        int nn[n+1];
        vector<double> zfs;
        zfs.clear();
        for(int i=1;i<=n;i++)
        {
            cin>>nn[i];
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=i+1;j<=n;j++)
            {
                double gcd=GCD(nn[i],nn[j]);
                if(gcd!=1)continue;
                double c=nn[i];
                double d=nn[j];
                double temp;
                if(c<d)
                {
                    temp=c;
                    c=d;
                    d=temp;
                }
                double element=(d/gcd)/(c/gcd);

             //   int count=0;
             //   for(int k=0;k<zfs.size();k++)
             //   {
             //       if(element!=zfs[k])count++;
             //   }
             //   if(count==zfs.size())
                zfs.push_back(element);
            }
        }
        // for(int k=0;k<zfs.size();k++)
        //         {
        //             cout<<zfs[k]<<" ";
        //         }
        cout<<zfs.size()<<endl;
    }
}

全部评论

相关推荐

把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务