1 条题解

  • 0
    @ 2025-10-10 15:45:27

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

    Java :

    import java.util.Scanner;
    
    public class Main{
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		int[] a = new int[n];
    		for(int i=0;i<n;i++ ){
    			a[i] = sc.nextInt();
    		}
    		int[] b =new int[n+3];
    		for(int i=0;i<n+3;i++) {
    			if (i<n) {
    				b[i]=a[i];
    			}else {
    				b[i]=a[i-n];
    			}
    		}
    		int c = 0 ;
    		int t = 1 ;
    		int max=b[0]+b[1]+b[2]+b[3];
    		for(int i =0;i<n;i++) {
    			c=b[i]+b[i+1]+b[i+2]+b[i+3];
    			if (max<c) {
    				max = c ;
    				t = i+1;
    			}
    		}
    		System.out.println(max);
    		System.out.println(t);
    	}
    }	
    

    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
    158
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    4
    已通过
    2
    上传者