CodeForces 598A Tricky Sum
2016-08-23 20:24
417 查看
Description
In 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 20, 21 and 22 respectively.
Calculate the answer for t values of n.
Input
The 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 ≤ 109).
Output
Print the requested sum for each of t integers n given in the input.
Sample Input
Input
Output
Hint
The answer for the first sample is explained in the statement.
数学题总是有技巧,不能总是暴力解。
#include<cstdio>
#define ll long long
int main()
{
ll t;
scanf("%lld",&t);
while(t--)
{
ll n,i;
scanf("%lld",&n);
ll sum = (1 + n)*n/2; //先求出n个数的和
for(i = 1 ; i <= n ; i*=2)
{
sum -= (i*2); //减去2的k次方的2倍
// printf("*****%lld\n",sum);
}
printf("%lld\n",sum);
}
}
In 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 20, 21 and 22 respectively.
Calculate the answer for t values of n.
Input
The 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 ≤ 109).
Output
Print the requested sum for each of t integers n given in the input.
Sample Input
Input
2 4 1000000000
Output
-4 499999998352516354
Hint
The answer for the first sample is explained in the statement.
数学题总是有技巧,不能总是暴力解。
#include<cstdio>
#define ll long long
int main()
{
ll t;
scanf("%lld",&t);
while(t--)
{
ll n,i;
scanf("%lld",&n);
ll sum = (1 + n)*n/2; //先求出n个数的和
for(i = 1 ; i <= n ; i*=2)
{
sum -= (i*2); //减去2的k次方的2倍
// printf("*****%lld\n",sum);
}
printf("%lld\n",sum);
}
}
相关文章推荐
- 物联网框架SuperIO 2.2.9和ServerSuperIO 2.1同时更新,更适用于类似西门子s7-200发送多次数据,才能读取数据的情况
- java内存结构划分与java虚拟机调优
- React Native几个重要的属性
- hibernate-sql
- asp.net mvc 简易通用自定义Pager实现分页
- JavaEE完整技术体系文章陆续上映!!!
- 旅行(最短路)
- logback.xml常用配置详解<configuration> and <logger>
- C# 文件夹,文件操作
- UDP广播问题
- 图的深度遍历
- 求乘方取模(快速幂+慢速乘法模板)
- Java静态分派与动态分派
- 线性同余方程及例题 codeforces 710D
- 4000 java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoa
- Android学习笔记--3.Intent的使用
- java虚拟机垃圾回收
- & |运算小记
- C++学习笔记之——map set 与 opencv中的数据结构 如 point 等不兼容
- 关于oracle with as用法