Description
第一个数是数列的长度,第二个数字是指数,第三行是数列,即真数。从数列中选择任意多个,使得他们每个求幂再求和最大
Input
第一个数是数列的长度,第二个数字是指数,第三行是数列
Output
输出最大幂和
Sample Input
3
3
2 -1 1
Sample Output
9
Solution
水题,注意指数奇偶
Code
#include<stdio.h>
#include<math.h>
int main()
{
int n,m,a[300];
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
int res=0;
if(m%2==0)//指数偶数则全加
{
for(int i=0;i<n;i++)
res+=(int)pow(a[i],m);
}
else if(m%2)//指数为奇数则加整数
{
for(int i=0;i<n;i++)
if(a[i]>0)
res+=(int)pow(a[i],m);
}
printf("%d\n",res);
return 0;
}