#include <stdio.h>
#include <math.h>
int main()
{
int n,m,a[100],i,j,y;
scanf("%d %d",&n,&m);
for(i=0;i<pow(2,n);i++)//输入
scanf("%d",&a[i]);
y=pow(2,n); //记录总数
for(j=0;j<m;j++) //统计折叠次数
{
for(i=0;i<y/2;i++) //进行折叠
{
a[i]=a[i]+a[y-i-1]; //折叠后的新数组
}
y=y/2;
}
for(i=0;i<pow(2,n)/(pow(2,m));i++) //输出
printf("%d ",a[i]);
return 0;
}
xdoj数组折叠
于 2023-12-14 19:15:15 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)