Tricky Sum【數學】CodeForces 598A
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
求和是一種最常見的運算,我們經常做的就是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
#include<cstdio>
int main()
{
int t,temp;
long long n,ans;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
ans=(n+1)*n/2;
temp=1;
while(n)
{
ans-=2*temp;
temp*=2;
if(n==1)
break;
n/=2;
}
printf("%lld\n",ans);
}
}
相關文章
- Codeforces 577B Modulo Sum:數學 結論【選數之和為m的倍數】
- Codeforces 1485F Copy or Prefix Sum
- Divisibility 【數學計數】Codeforces 597A
- CodeForces703B Mishka and trip 數學
- codeforces 1216E1(數學+暴力)
- Codeforces Round #360 (Div. 2) D 數學題
- Codeforces Round #224 (Div. 2)(數學、dfs)
- Codeforces 715A. Plus and Square Root[數學構造]
- codeforces 340CTourist Problem(找規律數學題)
- Codeforces 872C Maximum splitting:數學【分解成合數之和】
- LeetCode: Two sum(兩數之和)LeetCode
- [LeetCode] Two Sum 兩數之和LeetCode
- CodeForces571A. Lengthening Sticks(組合數學-容斥)
- codeforces#253 D - Andrey and Problem裡的數學知識
- [LeetCode] 3Sum 三數之和LeetCode
- [LeetCode] 4Sum 四數之和LeetCode
- Codeforces 876B Divisiblity of Differences:數學【任意兩數之差為k的倍數】
- Codeforces 402D Upgrading Array:貪心 + 數學
- Educational Codeforces Round 165 (Rated for Div. 2) C. Minimizing the Sum題解
- Codeforces Round #688 (Div. 2) C. Triangles(思維,數學)
- 容斥 + 組合數學 ---Codeforces Round #317 A. Lengthening Sticks
- 載譚 Binomial Sum 學習筆記筆記
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] C 數學
- CodeForces - 628D (數位dp)
- 如何提升自己的Codeforces分數
- python leetcode 之兩數之和(two sum)PythonLeetCode
- [LeetCode] 3Sum Closest 最近三數之和LeetCode
- GCD SUMGC
- 秒殺 2Sum 3Sum 4Sum 演算法題演算法
- 力扣.1 兩數之和 N 種解法 two-sum力扣
- CodeForces 401D 數位DP
- leetcode15&16_3Sum&4SumLeetCode
- 演算法學習之一:3SUM變體演算法
- 【數位dp】Beautiful numbers CodeForces - 55D
- 【Codeforces Round 362 (Div 2)B】【模擬】Barnicle 科學計數法轉普通表示法
- LeetCode 之 JavaScript 解答第一題 —— 兩數之和(Two Sum)LeetCodeJavaScript
- SQL groupby sum 用法SQL
- Split Array Largest Sum