博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nyoj-222 整数中的1
阅读量:4286 次
发布时间:2019-05-27

本文共 660 字,大约阅读时间需要 2 分钟。

题目链接:

整数中的1

时间限制:
3000 ms  |  内存限制:
1000 KB
难度:
4
描述
给出两个非负32位整型范围内的数a,b,请输出闭区间[a,b]内所有数二进制中各个位的1的总个数。
输入
一行,给出两个整形数a,b(0<=a<=b<=150000000),空格分隔。
输出
一行,输出结果
样例输入
1 2
样例输出
2
#include
typedef long long LL ;LL get_sum(LL x){ if(x <= 0) return 0; LL k = 0 ; LL n = x ; LL sum = 0 ,y; LL r = 1 ; while(x) { k ++ ; r *= 2 ; y = 0 ; LL s = (n + 1) / r ; LL t = (n + 1) % r ; if(t > r/2) y = t - r/2 ; sum += (y + s *(r/2)) ; x >>= 1; } return sum ;}int main(){ LL d,b; while(scanf("%lld%lld",&d,&b)!=EOF) { printf("%lld\n",get_sum(b)-get_sum(d-1)); }}
题解看图:

你可能感兴趣的文章
JQuery的表单验证之JQuery.validate插件
查看>>
vs 提示图标的含义
查看>>
AngularJS 常见错误
查看>>
CND使用说明整理2、Asp.NetCDN服务地址
查看>>
Require.Js简介
查看>>
RequireJS实例
查看>>
AngularJS路由
查看>>
AngularJS路由之ui-router(一)
查看>>
AngularJS路由之ui-router(二)
查看>>
Uncaught Error: datetimepicker component should be placed within a relative positioned container
查看>>
C#进制转换操作(一)
查看>>
C#进制转换操作(二)
查看>>
C#双规获取指定层数的下标排列
查看>>
C#转固定长度字符串
查看>>
JQuery.validationEngine表单验证插件
查看>>
C#字符串连接和StringBuilder字符串拼接性能测试
查看>>
C# Try/Catch性能测试
查看>>
C# DES解密异常问题
查看>>
AngularJS ocLazyLoad按需加载控制器/js文件的延迟加载(一)
查看>>
AngularJS 动态加载控制器实例-ocLoazLazy(二)
查看>>