原题链接
这道题不难如果暴力很简单(虽然我不会)
但是我的方法用了等差数列前n求和的公式
所以时间复杂度只有O(n)
#include<iostream>
using namespace std;
int main()
{
int n, m;
int sum[100];
int N[101];
for (int i = 0; i < 100; i++)
N[i] = 2 + 2 * i;
int k;
while (cin >> n >> m)
{
k = n / m;
for (int j = 0;j<k; j++)
{
sum[j] = N[j * m] -1+ m;
}
if (n - k * m != 0)
{
sum[k] = N[n - 1] - n + k * m + 1;
for (int l = 0; l < k + 1; l++)
{
if (l == 0)
cout << sum[l];
else
cout<< " " << sum[l];
}
}
else
{
for (int l = 0; l < k; l++)
{
if (l == 0)
cout << sum[l];
else
cout << " " << sum[l];
}
}
cout << endl;
}
return 0;
}