现在的位置: 首页 > 综合 > 正文

数位DP ACdream 1154 Lowbit Sum

2014年10月03日 ⁄ 综合 ⁄ 共 337字 ⁄ 字号 评论关闭

Problem Description  先把题目附上,以后再学习学习

long long ans = 0;
for(int i = 1; i <= n; i ++)
    ans += lowbit(i)
lowbit(i)的意思是将i转化成二进制数之后,只保留最低位的1及其后面的0,截断前面的内容,然后再转成10进制数
比如lowbit(7),7的二进制位是111,lowbit(7) = 1
6 = 110(2),lowbit(6) = 2,同理lowbit(4) = 4,lowbit(12) = 4,lowbit(2) = 2,lowbit(8) = 8

每输入一个n,求ans

Input

多组数据,每组数据一个n(1 <= n <= 10^9)

Output

每组数据输出一行,对应的ans

Sample Input

1
2
3

Sample Output

1
3
4

抱歉!评论已关闭.