1 solutions

  • 2
    @ 2025-11-2 14:46:36
    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    int a[N];
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	}
    	int cnt=0;
    	while(1)
    	{
    		bool st=true;
    		for(int i=1;i<=n;i++) //判断是否全0 
    		{
    			if(a[i]!=0)
    			{
    				st=false;
    			}
    		}
    		if(st) break; //全零 
    		int minv=1010,maxv=0,maxid,minid; //找到最大值最小值的位置和值 
    		for(int i=1;i<=n;i++)
    		{
    			if(a[i]>maxv)
    			{
    				maxv=a[i],maxid=i;
    			}
    			if(a[i]>0&&a[i]<minv)
    			{
    				minv=a[i],minid=i;
    			}
    		}
    		cnt++; //次数增加 
    		a[maxid]-=a[minid]; //根据题目进行操作 
    	}
    	cout<<cnt;
    } 
    
    • @ 2025-11-2 14:48:27

      少写了 return 0;

    • @ 2025-11-2 14:49:40

      @ 确实

    • @ 2025-11-29 9:39:23

      ????????????????????????????????????????????????????????????????????????????????

    • @ 2025-11-29 21:43:01

      @ na zha le

  • 1

Information

ID
2888
Time
1000ms
Memory
256MiB
Difficulty
9
Tags
# Submissions
10
Accepted
5
Uploaded By