K的倍数----2018美团校招内推

来源:互联网 发布:南京弘历软件 编辑:程序博客网 时间:2024/05/01 15:46

K的倍数

//暴力解法

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(void)
{
int i, j, m, N, b, k;
int index,maxSum=0;
vector<int>a1;
vector<int>a;
cin >> N;
m=N;
while(m>0)
{
cin >> b;
a1.push_back(b);
m--;
}
cin >> k;
for(i=0;i<N;++i)
{
int sum=0;
index=0;
for(j=i;j<N;++j)
{
sum += a1[j]; //好多重复的长度判断,如2个序列只需要一个相邻整除就可以;而且如果3个序列子串能够整除没必要访问2个子串
index++;
if(sum%k==0)
{
a.push_back(index);  //每次重复赋值,但只存储最大的长度
}


}
}
for(i=0;i<a.size();i++)
{
if(a[i]> maxSum)
maxSum = a[i];
}
cout << maxSum << endl;


getchar();getchar();
return 0;
}