1 条题解

  • 0
    @ 2023-6-11 12:15:50

    C :

    int a[20];
    int main() 
    {
    	int n,i;
    	scanf("%d",&n);
    	for(i = 0; i < n; i++) 
    	{
    		scanf("%d",&a[i]);
    	}
    	int max= 0;         //最大值
    	int maxIndex = 0;  //起始位置下标
    	for(i = 0; i < n; i++) 
    	{
    		int num = a[i] + a[ (i + 1) % n  ]  + a[  (i + 2) % n  ] + a[  (i + 3) % n  ];
    		if(num > max) 
    		{
    			max = num;
    			maxIndex = i;
    		}
    	}
    	printf("%d %d",max,maxIndex+1);
    }
    

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a[150],n,zf,s,max,p;
        bool f;
        cin>>n;
        for (int i=0;i<n;i++)
        {
            cin>>a[i];
            
        }
        max=a[0]+a[(0+1)%n]+a[(0+2)%n]+a[(0+3)%n];
        p=0;
        for (int i=0;i<n;i++)
        {
        	s=a[i]+a[(i+1)%n]+a[(i+2)%n]+a[(i+3)%n];
        	if (s>max) 
    		{
    			max=s;
    			p=i;
    		}
        	
    	}
    	cout<<max<<endl<<p+1<<endl;
        return 0;
    }
     
    

    Python :

    n = int(input())
    li = list(map(int,input().split()))
    li.append(li[0]) 
    li.append(li[1])
    li.append(li[2])
    m = 0
    s = 0
    for i in range (0,n):
        r = li[i] + li[i + 1] + li[i + 2] + li[i + 3]
        if r > m:
            m = r
            s = i 
    print(m)
    print(s+1)
            
    
    • 1

    【基础】相加之和最大,并给出它们的起始位置

    信息

    ID
    2083
    时间
    1000ms
    内存
    16MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者