【CodeForces】[598A]Tricky Sum

这里写图片描述

挺水的一题
先公式求1~n的和
然后依次减去2的i次方
直到2的i次方大于n

#include<stdio.h>
int main() {
    int T;
    scanf("%d",&T);
    while(T--) {
        int n;
        scanf("%d",&n);
        __int64 res=(__int64)n*(__int64)(n+1)/2;
        int t=1;
        while(1) {
            res-=t*2;
            if(t>n/2)
                break;
            t*=2;
        }
        printf("%I64d
",res);
    }
    return 0;
}

题目地址:【CodeForces】[598A]Tricky Sum

原文地址:https://www.cnblogs.com/BoilTask/p/12569597.html