题目描述
解题思路
题目的意思就是给一个数组,如果是数组两端,那么就求与相邻一个数的平均值,如果是数组中间,就求与相邻两个数的平均值
遍历一遍数组进行计算即可
注意平均值是下取整
代码实现
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010;
int n;
int a[N];
int res[N];
int main()
{
cin >> n;
for (int i = 0; i < n; i ++)
{
cin >> a[i];
}
int bn = 0, p = 0, ed = 0;
for (int i = 0; i < n; i ++)
{
p = i, bn = i - 1, ed = i + 1;
if (p == 0 )
{
res[i] = (a[p] + a[ed]) / 2;
}
else if (p == n - 1)
{
res[i] = (a[bn] + a[p]) / 2;
}
else res[i] = (a[bn] + a[p] + a[ed]) / 3;
cout << res[i] << ' ';
}
return 0;
}