vector解法

P1416 攻击火星

```cpp #include<iostream> #include<vector> using namespace std; int main() { int size; int sum = 0; cin >> size; vector<int> v(size, 1); for (vector<int>::iterator it=v.begin();it!=v.end()&&it!= ++v.end();it++) { it++; sum++; } cout << sum; return 0; } ``` 现在还是只能过一个编译器,怎么办?
by Walker_Syw @ 2021-10-16 21:26:09


@[Walker_Syw](https://www.luogu.com.cn/user/449695)不至于这样吧,用数学的角度去推一下公式,其实答案就是n-2,不过要考虑比1小的情况,答案就是 ```cpp max(n-2,0) ``` ~~其实我相信代码不贴你应该也会吧~~ 代码: ```cpp #include<iostream> using namespace std; int main(){ int n; cin>>n; cout<<max(n-2,0); return 0; } ``` ~~史上最短代码的普及-题~~
by sijiajun @ 2023-04-18 21:53:46


不过,如果一定要用vector来解,也可以这样写: ```cpp #include<iostream> #include<vector> using namespace std; int main(){ int size,sum=0; cin>>size; vector<int> v(size,1); for(vector<int>::iterator it=v.begin();it!=v.end()-2;)it++,sum++; if(it==1)sum=0; cout <<sum; return 0; } ``` @[Walker_Syw](https://www.luogu.com.cn/user/449695)
by sijiajun @ 2023-04-18 22:09:05


~~考古,Walker_Syw会回吗?~~
by sijiajun @ 2023-04-18 22:09:55


|