2 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

  • 0
    @ 2026-2-19 19:59:40
    
    ```cpp
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	    
        int n;
        cin>>n;
        int a[105];
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
        }
        int sum=0,x=0;
        while(n>=0)
        {
    		x=0;
            int k=-1,j=101,maxx,minn;
            for(int i=n;i>=1;i--)
            {
                if(a[i]==0)
                {
                    x++;
                    continue;
                }   
                if(a[i]>k)
                {
                    k=a[i];
                } 
                if(a[i]<j)
                {
                    j=a[i];
                }
            }
            for(int i=1;i<=n;i++)
            {
                if(a[i]==k)
                {
                    maxx=i;
                }
                if(a[i]==j)
                {
                    minn=i;
                }
            }
            //cout<<minn<<" "<<maxx<<"*";
    		//cout<<x<<" ";
    		//for(int i=1;i<=n;i++)
    		//{
    		//	cout<<a[i]<<" ";
    		//}
    		//cout<<endl;
    		
    		 if(x==n)
            {
              //  sum++;
                cout<<sum;
                return 0;
            }
            else{
                sum++;
            }
            a[maxx]=a[maxx]-a[minn];
        }
    	return 0;
    }
    
    
    • 1

    Information

    ID
    2888
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    8
    Tags
    # Submissions
    18
    Accepted
    6
    Uploaded By