题目大意:
Mirko在数学课上以一种有趣的方式操作数列,首先,他写下一个数列A,然后他对该数列的前i个数求平均值,得到一个数列B。
比如数列A为1,3,2,6,8,那么数列B为:
即:1,2,2,3,4
给你第二个数列B,求第一个数列A.
输入:
第一行为整数N(1<=n<=100),表示数列B的长度。
第二行为n个整数,表示数列B。(1<=Bi<=10^9)
输出:
仅一行,输出A数列,每一个数用空格隔开。
输入样例1:
1
2
输出样例1:
2
输入样例2:
4
3 2 3 5
输出样例2:
3 1 5 11
输入样例3:
5
1 2 2 3 4
输出样例3:
1 3 2 6 8
分析:
一道很水的数学题,对每一个B数列中的元素乘上它的编号,得到它的前缀和,对前缀和相减得到A数列。
code:
#include<cstdio>
#define LL long long
#define MAXN 100
using namespace std;
LL a[MAXN+5];
int n;
int main()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%I64d",&a[i]);
a[i]*=i;
}
for(i=1;i<=n;i++)
printf("%I64d%c",a[i]-a[i-1],i==n?'\n':' ');
}