问题标题: 酷町堂:5130 求大佬解答 急急急

0
0
已解决
汤启恩
汤启恩
新手光能
新手光能

输入一个数组,左半边折到右半边,折叠一次,重叠在一起的数字累加,输出折叠后的数组

#include<bits/stdc++.h>
using namespace std;
int a[101],cnt;
int main(){
	int n,j,i;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	if(n%2==0){
		i=n/2;
		j=n/2+1;
		while(i>=1&&j<=n){
			a[++cnt]=a[j]+a[i];
			i--;
			j++;
		}
		for(int i=cnt;i>=1;i--){
			cout<<a[i]<<" ";
		}
	}
	else{
		j=n/2+2;
		i=n/2;
		while(j<=n&&i>=1){
			a[++cnt]=a[i]+a[j];
			i--;
			j++;
		}
		a[++cnt]=a[n/2+1];
		for(int i=1;i<=cnt;i++){
			cout<<a[i]<<" ";
		}
	}
	return 0;
}

 

汤启恩在2020-10-06 14:43:53追加了内容

ding


0
已采纳
蔡乐毅
蔡乐毅
高级光能
高级光能

输入

  • if(n%2==1) cout<<a[n/2+1]<<' ';
  • for(int i=n/2;i>=1;i--)
    • cout<<a[i]+a[n-i+1]<<' ';
  • 完美
0
0
康曦
康曦
中级光能
中级光能
int n,a[101],b[101],c[101],k=1;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    if(n%2==1){
        for(int i=1;i<=(n-1)/2;i++){
            b[i]=a[i];
        }
        for(int i=((n-1)/2+2);i<=n;i++){
            c[k]=a[i];
            k++;
        }
        int j=(n-1)/2;
        cout<<a[(n+1)/2]<<" ";
        for(int i=1;i<=(n-1)/2;i++){
            cout<<b[j]+c[i]<<" ";
            j--;
        }
    }
    else{
        for(int i=n/2;i>=1;i--){
            b[k]=a[i];
            k++;
        }
        int j=1;
        for(int i=n/2+1;i<=n;i++){
            c[j]=a[i];
            j++;
        }
        for(int i=1;i<=n/2;i++){
            cout<<b[i]+c[i]<<" ";
        }
    }

.........................................................................................................................................................................................................................................

0
0
0
我要回答