1 条题解

  • 0
    @ 2025-8-24 22:15:54

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 清风雪月
    柠檬恋水伴蓝月,暮空喜风留残影

    搬运于2025-08-24 22:15:54,当前版本为作者最后更新于2021-09-27 17:36:41,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    第一篇可提交的题解,望通过。

    下面切入正题。


    通过找规律和观察我们发现,要想得到整数,我们应该要选择输入的第二个数,也就是第一个分数的分母作为整体的分母。

    那么怎么判断是否可行呢?我们就需要用到约分,即把两个数同时除以它们的最大公约数。

    除完之后,如果最终的结果不是一,除不干净,那么就说明它不是整数。

    有了思路我们就可以做了。


    //~柠月~
    #include<bits/stdc++.h>
    using namespace std;
    int d,n,a[10001],q;//q是第二个数
    int gcd(int a,int b)//约分
    {
    	if(b==0)return a;
    	return gcd(b,a%b);
    }
    int main()
    {
    	cin>>d;
    	for(int i=1;i<=d;i++)
    	{
    		memset(a,0,sizeof(a));//把a数组初始化
    		cin>>n;
    		for(int i=1;i<=n;i++)
    		{
    			cin>>a[i];
    		}
    		q=a[2];
    		for(int i=1;i<=n;i++)
    		{
    			if(i!=2)q/=gcd(q,a[i]);
    		}
    		if(q==1)cout<<"YES"<<endl;
    		else cout<<"NO"<<endl;
    	}
        return 0;
    }
    

    不要直接抄代码哦,至少先看看分析吧。

    • 1

    信息

    ID
    4964
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者