题目描述
有一组数,其排列形式如下: 11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8, 且尾部8和头部11首尾相连,构成环形的一组数,编程找出相邻的4个数,其相加之和最大,并给出它们的起始位置。
输入
第一行有一个整数n( 5 <= n <= 20 ) 第二行有n个数
输出
第一行有一个数,即最大的和 第二行有一个数,即起始数的位置
样例输入
20
11 19 9 12 5 20 1 18 4 16 6 10 15 2 17 3 14 7 13 8
样例输出
51
1
满分代码:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
if (num < 5 || num > 20)
{
System.exit(0);
}
int[] nums = new int[num];
int[] nums2 = new int[num];
for (int i = 0; i < num; i++)
{
nums[i] = sc.nextInt();
}
for (int i = 0; i < nums.length - 3; i++)
{
int sumOfFour = 0;
for (int j = i; j < 4 + i; j++)
{
sumOfFour += nums[j];
}
nums2[i] = sumOfFour;
}
nums2[num - 3] = nums[num - 3] + nums[num - 2] + nums[num - 1] + nums[0];
nums2[num - 2] = nums[num - 2] + nums[num - 1] + nums[0] + nums[1];
nums2[num - 1] = nums[num - 1] + nums[0] + nums[1] + nums[2];
int max = 0;
int index = 0;
for (int i = 0; i < nums2.length; i++)
{
if (nums2[i] > max)
{
max = nums2[i];
index = i;
}
}
System.out.println(max);
System.out.println(index + 1);
}
}