早教吧作业答案频道 -->其他-->
给你n数,要求不相邻数和最大的是多少,(第一位和最后一位是相邻的,就像一个环一样)比如,5123453和5的和是最大的,所以结果为8现在呢
题目详情
给你n数,要求不相邻数和最大的是多少,(第一位和最后一位是相邻的,就像一个环一样)比如,
5
1 2 3 4 5
3和5的和是最大的,所以结果为8
现在呢
5
1 2 3 4 5
3和5的和是最大的,所以结果为8
现在呢
▼优质解答
答案和解析
这个肯定要全部循环一次,先设3个变量x0=0,x1=1,x2=2;楼主应该做过在一个数组里找最大数的题目吧?这个类似,找出最大的三个数,把这三个数的下标放到这三个变量中。循环的时候让数组的元素和这三个数比较,最大的放在这三个数中。比如:
for (int i = 0; i < n; ++i)
{
if (a[i] > a[x0])
{
x2 = x1;
x1 = x0;
x0 = i;
}
else if (a[i] > a[x1])
{
x2 = x1;
x1 = i;
}
else if (a[i] > a[x2])
x2 = i;
}
这样这个数组里最大的三个数关系如下a[x0]>a[x1]>a[x2];
然后判断x0-x1是不是等于1(-1),如果不是,那最大的就是a[x0]+a[x1],否则判断x0-x2是不是等于1(-1),如果不是,那最大的就是a[x0]+a[x2],否则最大的肯定是a[x1]+a[x2]。
if (x0 - x1 == 1 || x0 - x1 == -1)
max = a[x0]+a[x1];
else if (x0 - x2 == 1 || x0 - x2 == -1)
max = a[x0]+a[x2];
else
max = a[x1]+a[x2];
for (int i = 0; i < n; ++i)
{
if (a[i] > a[x0])
{
x2 = x1;
x1 = x0;
x0 = i;
}
else if (a[i] > a[x1])
{
x2 = x1;
x1 = i;
}
else if (a[i] > a[x2])
x2 = i;
}
这样这个数组里最大的三个数关系如下a[x0]>a[x1]>a[x2];
然后判断x0-x1是不是等于1(-1),如果不是,那最大的就是a[x0]+a[x1],否则判断x0-x2是不是等于1(-1),如果不是,那最大的就是a[x0]+a[x2],否则最大的肯定是a[x1]+a[x2]。
if (x0 - x1 == 1 || x0 - x1 == -1)
max = a[x0]+a[x1];
else if (x0 - x2 == 1 || x0 - x2 == -1)
max = a[x0]+a[x2];
else
max = a[x1]+a[x2];
看了给你n数,要求不相邻数和最大的...的网友还看了以下:
英语翻译生命中最重要的事是什么呢?房子?车子?票子?还是地位?还是你当下在做的事?或许有人认为做好 2020-06-04 …
为什么CO2的吸收量最大,就最适合植物生长?为什么不是糖类消耗越多越适合呢? 2020-06-07 …
隋朝就其历史地位而言,对后世影响最为深远的是()A.以关中为中心统治全国B.开凿了大运河C.开创了 2020-07-28 …
英语翻译三维动画前期制作在全部制作流程中占据最为重要的位置,也是一部动画是否能够成功的关键所在.如何 2020-11-06 …
已知a<0,b<0,a+b=-2,若c=1/a+1/b,则c的最值为为什么是最大值,最小...已知a 2020-11-24 …
2013年,大学生遭遇“史上最难就业季”。某大学三位大学生就业情况如下表。姓名就业理念最终去向李君如 2020-11-24 …
“一个具有拾金不昧高尚品德的人,一般不会为贪图钱财而最终走上贪污、盗窃、抢劫等违法犯罪道路。”这句话 2020-12-18 …
下列饮食习惯中,最为合理的是()A、不定时进食,饿了就吃B、喜欢的就多吃点,不喜欢的就少吃或不吃C、 2020-12-27 …
一堆火柴共1992根,甲乙两人轮流取,甲先乙后,每次最少取1根,最多8根,谁取到最后就一堆火柴共19 2020-12-29 …
只求步骤分析)把一个小球用细线悬挂起来,就成为一个摆,摆长为L,最大偏角为x.如果阻力可以忽略,小球 2021-01-02 …