滴滴测开笔试第二道编程AC代码
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
while(cin >> n){
vector<int> data(n);
int sum = 0;
for(int i = 0; i < n; i++){
cin >> data[i];
sum += data[i];
}
if(n < 6)cout << sum << endl;//如果是小于6,直接输出
else{
for(int j = 3; j <= n; j++){//对3边形以上枚举
if(n%j == 0){//求余,子边形
int tsum = 0, step = n/j;//tsum是每组的和,step是步长
for(int i = 0; i < n/j; i++){//枚举开始的起点
tsum = 0;
for(int k = i; k < n; k += step)
tsum += data[k];//算每个子边形的和
sum = max(tsum, sum);//取最大
}
}
}
}
cout << sum << endl;
}
return 0;
} #滴滴##笔试题目##秋招##题解##测试开发工程师#
SHEIN希音公司福利 222人发布
查看22道真题和解析