Easy Problem VI
来源:互联网 发布:通信网络维护 编辑:程序博客网 时间:2024/06/15 11:13
DescriptionIn this problem you are to calculate the sum of all integers from 1 to n, but you should take all powers of two with minus in the sum.For example, for n=4 the sum is equal to -1-2+3-4=-4, because 1, 2 and 4 are 2^0, 2^1 and 2^2 respectively.
Calculate the answer for t values of n.
InputThe first line of the input contains a single integer t (1≤t≤100) — the number of values of n to be processed.Each of next t lines contains a single integer n (1≤n≤10^9).
OutputPrint the requested sum for each of t integers n given in the input.Sample Input
2
41000000000
Sample Output-4499999998352516354
题意:就是求1~n的和 ,只不过其中如果是i是2的幂的话,就是加上它的负数
思路先用数组存一下2的幂,最多粗面30个,因为题上给的数小于2的31次幂 再算n(n+1)/2,把那些是2的幂的数减去两倍
#include<iostream>#include<cstdio>#include<cstring>using namespace std; int main(){ long long a[100]; int t,k; long long n,i; long long sum; k=0; sum=1; a[k]=1; for(i=1;i<32;i++){ sum*=2; a[++k]=sum; } scanf("%d",&t); while(t--){ sum=0; scanf("%lld",&n); sum=n*(n+1)/2; for(i=0;i<=k;i++){ if(a[i]<=n) sum-=2*a[i]; } printf("%lld\n",sum); }}
0 0
- Easy Problem VI
- Easy Problem VI
- scu Easy Problem VI SCU
- easy problem
- SetType,a easy problem
- An Easy Problem
- 2055 An easy problem
- An Easy Problem!
- An Easy Problem!
- Easy Problem(cdOJ1644)
- 【模拟】Another Easy Problem
- FZU_1753 Another Easy Problem
- fzu1753 Another Easy Problem
- poj2826 An Easy Problem?!
- A problem is easy
- 三分法Easy Problem
- HDOJ2055 An easy problem
- 23:Easy problem
- 计算机视觉领域期刊
- javaSE第三部分下 面向对象下
- Redis实现分布式锁
- Android studio 正式签名打包
- postfix常用错误解决方案
- Easy Problem VI
- mysql的存储引擎innodb、myisam对插入影响和索引对插入的影响
- HTML--学习笔记第一天
- docker安装的bug(Win10)
- final常量和Scanner输入
- Git使用总结(包含Git Bash和Git GUI的使用)(赞)
- java编程思想-第18章-java I/O系统
- java 基础知识二(抽象类‘、接口)
- 153. Find Minimum in Rotated Sorted Array