这道题自己要多手模一下,我这里画图理解
那么对于(n=5)的情况,(ans=6)
一个例子不够明显,再来一个
那么对于(n=6)的情况,(ans=9)
不难发现这就是一个等差数列,公差为(2),末项为(n-1),可以用样例二验证一下
那么这道题就可以(O(1))了,但是本蒟蒻不会等差数列求和公式,所以大概是(O(n/2))(口胡的时间复杂度)
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
scanf("%d",&n);
int ans=0;
for(register int i=n-1;i>=0;i-=2){
ans+=i;
}
cout<<ans;
return 0;
}