题解 | #最简真分数#

最简真分数

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;
    }
}

全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
king122:专业技能不要写这么多,熟悉和熟练你经不住问,排版有些难看,中间的空隙搞小一点,项目描述的话感觉是从课程中抄下来的,改一改吧,不然烂大街了,每个项目都写一两点,用什么技术实现了什么难点,然后再写一些数字上去像时间又花了90%这样,这样面试会多一些,如果觉得自己的项目还是不够用的话,我有几个大厂最近做过的实习项目,感兴趣的话可以看我简介中的项目地址
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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