#include <iostream> using namespace std; int main() {     long n;     cin>>n;     long long res=0;     long t=2;//用t表示2^k     int count=0;     while(count<n/2)     {         for(long i=1;t*i<=n;i=i+2)//找到2^k*i<=n的所有i         {             res=res+i;             count++;           }         t=t*2;     }     if(n%2==0) //当n为奇数时,序列中的奇数和     {         res=res+n*n/4;                 }     else//当n为偶数时,序列中的奇数和     {         res=res+(n+1)*(n+1)/4;             }     cout<<res<<endl;     return 0; }
点赞 评论

相关推荐

11-11 16:40
已编辑
门头沟学院 人工智能
不知道怎么取名字_:这个有点不合理了,相当于已经毕业了,但还是没转正,这不就是白嫖
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务