XUPT-D
/*
泰泰学长又来玩数字了,泰泰学长想让你帮他求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 }
XUPT-D的更多相关文章
- Redis学习 - 入门
业精于勤,荒于嬉:行成于思,毁于随 -- 韩愈·<进学解> 因为工作中需要用到Redis,所以最近抽点时间看了一下,现在将学习的内容整理一下. 一.简介 1.Redis是什么? R ...
- 在未排序的数组中找到第 k 个最大的元素
在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 ...
- 关于Java实现的进制转化(位运算)
一.需求: 最近在做文件传输的东西,文件传输当然是传输很重要,包括编码格式以及进制的统一. 简略的说一下这次做的东西:首先文件是按照块来发送的,一块一块大的发,但是,发送的过程是这样的: 先发送头部, ...
- 简单实现Java的RMI——远程方法调用
一.RMI简介: 说到RMI就不得不说RPC了. RPC:(Remote Procedure Call),远程过程调用. RMI(Remote Method Invocation),远程方法调用. R ...
- Java代理机制之初见(理解及实现)
都知道Java中的Spring,有一重要思想:AOP,实现原理也就是Java的动态代理机制.初见代理这个名词时,觉得生活中常有代理的这一说法. 那么,在Java中,代理又是什么呢?它又是如何实现的?实 ...
- Python学习---面向对象的学习[基础]
面向对象 面向对象的三大特性是指:封装.继承和多态. 说明: Python可以函数式编程,也可以面向对象编程 l 面向过程:根据业务逻辑从上到下写垒代码 l 函数式 :将某功能代码封装到函数中,日后便 ...
- Python学习---面向对象的学习[深入]
类的深入学习 a. Python中一切事物都是对象 b. class Foo: pass obj = Foo() # ...
- Python学习---Python下[字典]的学习
Python中唯一的映射类型(哈希表) -->Java中的HashMap<K,V> Python对key进行了哈希函数运算,根据计算的结果决定value的存储地址,所以字 ...
- Python学习---基础函数的学习
1.1. 基础函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 灌输一个概念:Python中函数就是对象,函数和我们之前的[1,2,3],'abc ...
- Python学习---内置函数的学习
内置函数 [Py3.5官方文档]https://docs.python.org/3.5/library/functions.html#abs Built-in Functions abs() dict ...
随机推荐
- GitHub Actions 支持 "skip ci" 了
GitHub Actions 支持 "skip ci" 了 Intro GitHub Actions 作为 GitHub 官方的 CI 支持,很多开源项目已经在使用 Actions ...
- Linux-输出/输入重定向
目录 重定向的分类 输出重定向 将标准输出重定向到文件 将标准输出追加重定向到文件 将错误输出重定向到文件 将标准输出和错误输出都重定向到文件 将错误输出重定向到黑洞文件 输入重定向 重定向的分类 名 ...
- Seq2Seq原理详解
一.Seq2Seq简介 seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列.Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Dec ...
- python = 赋值顺序 && C++ side effect
title: python = 赋值顺序 && C++ side effect date: 2020-03-17 15:00:00 categories: [python][c++] ...
- mybatis(一)常见ORM框架及JDBC操作工具类
转载:https://www.cnblogs.com/wuzhenzhao/p/11075569.html 在Java 程序里面去连接数据库,最原始的办法是使用JDBC 的API.我们先来回顾一下 ...
- 事件循环 EventLoop(Promise,setTimeOut,async/await执行顺序)
什么是事件循环?想要了解什么是事件循环就要从js的工作原理开始说起: JS主要的特点就是单线程,所谓单线程就是进程中只有一个线程在运行. 为什么JS是单线程的而不是多线程的呢? JS的主要用途就是与用 ...
- CSS3 & CSS var & :root
CSS3 & CSS var & :root How to change CSS :root color variables in JavaScript https://stackov ...
- SVG (viewBox) & DOM (viewport)
SVG (viewBox) & DOM (viewport) circle "use strict"; /** * * @author xgqfrms * @license ...
- css grid layout in practice
css grid layout in practice https://caniuse.com/#search=grid subgrid https://caniuse.com/#search=cal ...
- svg editor
svg editor https://c.runoob.com/more/svgeditor/ xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访 ...