第一题:平均数
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)
输入样例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
水题,可以转化成前缀和,进一步转化成原数组。
记得开long long。
时间复杂度O(n)。
A了。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long num[105];
int n;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
scanf("%I64d",&num[i]);
num[i]*=i;
printf("%I64d%c",num[i]-num[i-1],i==n?'\n':' ');
}
}