题解 | 循环求和

循环求和

https://www.nowcoder.com/practice/f1725df80ee04cfebb6300f27c3d6464

#include <iostream>
using namespace std;

int main()
{
    int t; cin >> t;
    while (t -- )
    {
        long long l, r;
        cin >> l >> r;
        long long ans = 0;
        if ((l & 1) && (r & 1))
        {
            ans = r - (r - l >> 1);
        }
        else if (!(l & 1) && (r & 1))
        {
            ans = (r - l + 1 >> 1);
        }
        else if ((l & 1) && !(r & 1))
        {
            ans = -(r - l + 1 >> 1);
        }
        else 
        {
            ans =  (r - l >> 1) - r;
        }
        cout << ans << "\n";
    }

    return 0;
}

全部评论

相关推荐

01-14 16:23
广州商学院 Java
双非后端失败第N人:如果准备好了可以直接投字节,字节是最不看学历的,只要想面,大概率都能给你约面。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务