AC
#include<bits/stdc++.h>
using namespace std;
vector<int> tem;
int x=0;
int y=0;
int a=1;
int j=0;
//需要注意的是在C++中如果想把方法中的变量传递到主函数当中需要添加&符号,指向地址传参
void primeval(vector<int> &arr, int &n) {
int b=2;
while(b<=n){
tem.insert(tem.begin(), 0);
j=b*0.5+1;
for(int i=1;i<=b*0.5;i++){
x = (arr[i]+arr[j])*0.5;
y = arr[i]-x;
tem.insert(tem.end(),x);
tem.insert(tem.end(),y);
j++;
}
for(int i=1;i<tem.size();i++){
arr[i] = tem[i];
}
tem.clear();
b=2*b;
}
}
int main()
{
vector<int> init;
int n=0;
int m = 0;
scanf("%d ",&n);
while(n){
init.insert(init.begin(), n);
for(int i=1;i<=n;i++){
scanf("%d", &m);
init.insert(init.begin()+i,m);
}
primeval(init, n);
for(int i=1;i<=n;i++){
printf("%d ", init[i]);
}
printf("\n");
init.clear();
scanf("%d", &n);
}
return 0;
}
请大佬赐教
怎么通过scanf直接把要输入的数存储到vector数组中
(因为没有掌握这个方法,此处采用先保存到变量m中然后通过insert插入到vector数组中)