/*
     泰泰学长又来玩数字了,泰泰学长想让你帮他求1-n的和,但是这次的求和可不是简单的1+2+...+n。 这次的求和是这样的,如果加到一个数字是2的指数倍,那就不加,反而减掉这个数。
    比如 n = 4:-1-2+3-4 = -4。
    说明:其中1,2,4都是2的指数倍。
Input
    第一行是总询问数 T,接下来T行,每行一个 n,(1<=T<=100)(1<=n<=10^9)
Output

    输出对应的结果
Sample Input
    2
    4
    1000000000
Sample Output
     
    -4
    499999998352516354
*/

可以借助等比数列和位移求解(1+n)*n/2 - 2*(2的等比数列和);
2的等比数列和可以借助位移求解

 1 #include <cstdio>
2 #include <cmath>
3 typedef long long LL;
4 using namespace std;
5 int main(){
6 int t;
7 LL n;
8 scanf("%d", &t);
9 while(t--){
10 scanf("%lld", &n);
11 LL sum = (1+n)*n/2;
12 int count = 1;
13 while(n >>= 1){
14 count++;
15 }
16 LL temp = 2 * ((LL)pow(2, count) - 1);
17 sum = sum - temp;
18 printf("%lld\n", sum);
19 }
20 return 0;
21 }

最新文章

  1. IOS 图片上传处理 图片压缩 图片处理
  2. eclipse下maven项目保持原有目录结构配置resin运行环境
  3. AIX 环境下动态路由
  4. i18n国际化
  5. Visual Studio 2013 Update 2 and with Update 2
  6. 聚聚科技---PHP开发笔试题及答案
  7. ActiveX异步回调JavaScript
  8. Android图片裁剪之自由裁剪
  9. [项目记录] 用c语言完成的一个学生成绩管理系统
  10. [翻译] Linux 内核中的位数组和位操作
  11. 微信小程序-if条件渲染
  12. Es6对象的扩展和Class类的基础知识笔记
  13. js字符串与十六进制相互转换
  14. PHP脚本不报错的两点原因
  15. ArcGIS 10.4的0x80040228许可错误
  16. 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)
  17. Jquery使用Id获取焦点和失去焦点
  18. C#: Delegate and Event
  19. ROS launch启动文件的理解与编写
  20. idea 编辑时cup飙升解决方案,亲测有效

热门文章

  1. 51nod 1384 可重集的全排列
  2. 关于st表的推导
  3. Linux 驱动框架---input子系统
  4. 如何使用 js 实现相似图片搜索
  5. 手机 wifi 已连接,不可上网 bug
  6. skills share &amp; free videos
  7. svg &amp; stroke &amp; style &amp; class
  8. 听说USDN最近很火,它究竟是什么?
  9. webpack4.X源码解析之懒加载
  10. [Python学习笔记]正则表达式总结