【codeforces】Tricky Sum
2016-07-21 14:47
267 查看
Tricky Sum
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d
& %I64u
Submit Status
Description
求和是一种最常见的运算,我们经常做的就是1加到n的和。例如,1加到100的和是5050。但是现在,我们稍微变动一下求和方法,对于属于2的幂次的数,我们做的是减法,其余仍旧做加法。例如,当n=4的时候,最后的结果应该是-1-2+3-4=-4,因为1、2、4分别是2的0次方、2的1次方、2的2次方。现在请你来计算t次这样的运算。
Input
输入第一行是一个正整数t,表示要进行t次运算。接下来t行,每行一个整数n,表示要按新的求和方法计算1到n的和。
注意:1<=t<=100,1<=n<=10^9。
Output
输出t组答案,每个答案占一行。
Sample Input
2
4
1000000000
Sample Output
-4
499999998352516354
不同时刻做,有不同的思路哈。
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d
& %I64u
Submit Status
Description
求和是一种最常见的运算,我们经常做的就是1加到n的和。例如,1加到100的和是5050。但是现在,我们稍微变动一下求和方法,对于属于2的幂次的数,我们做的是减法,其余仍旧做加法。例如,当n=4的时候,最后的结果应该是-1-2+3-4=-4,因为1、2、4分别是2的0次方、2的1次方、2的2次方。现在请你来计算t次这样的运算。
Input
输入第一行是一个正整数t,表示要进行t次运算。接下来t行,每行一个整数n,表示要按新的求和方法计算1到n的和。
注意:1<=t<=100,1<=n<=10^9。
Output
输出t组答案,每个答案占一行。
Sample Input
2
4
1000000000
Sample Output
-4
499999998352516354
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#include<stdio.h> #include<algorithm> using namespace std; __int64 f(__int64 n)2的n次方 { __int64 i,s=1; for(i=1;i<=n;i++) s*=2; return s; } int main() { int t; __int64 n,i,sum; scanf("%d",&t); while(t--) { scanf("%I64d",&n); sum=(n+n*n)/2; for(i=0;f(i)<=n;i++) { sum-=2*f(i); } printf("%I64d\n",sum); } return 0; }
不同时刻做,有不同的思路哈。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include<cstdio> #include<cstdlib> #include<cstring> int main() { int t; long long n; scanf("%d",&t); while(t--) { scanf("%lld",&n); long long sum=0; for(int i=2;i<=n;i=i*2) sum+=i; long long sum1=(1+n)*n/2; // printf("%lld ",sum1); long long sum2=sum1-sum*2-2; printf("%lld\n",sum2); } return 0; }
相关文章推荐
- 环保网格化管理模式
- Spring注解详解【转载】
- Spring声明式事务管理与配置介绍
- IOS高级开发~开机启动&无限后台运行&监听进程
- CSS 加载新方式
- synchronized同步块和volatile同步变量
- 异步返回参数封装
- Java使用DOM生成XML文件
- 扬尘防治实时在线监控云平台
- centos6.5上dstat的安装
- Trie树数组版
- HDU 2899 Strange fuction
- HTTP协议特点
- java.lang.ArrayIndexOutOfBoundsException: 160
- Android调用相机之后在相册中找不到这个照片的解决办法
- 前端开发入门-Hbuilder编辑器使用方法
- mysql开启root用户可远程登录方法
- C语言之移位操作
- 二维数组和二级指针(转)
- java.lang.ArrayIndexOutOfBoundsException: 160