nyoj-222 整数中的1
来源:互联网 发布:webpack java 编辑:程序博客网 时间:2024/04/28 02:49
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=222
整数中的1
时间限制:3000 ms | 内存限制:1000 KB
难度:4
- 描述
- 给出两个非负32位整型范围内的数a,b,请输出闭区间[a,b]内所有数二进制中各个位的1的总个数。
- 输入
- 一行,给出两个整形数a,b(0<=a<=b<=150000000),空格分隔。
- 输出
- 一行,输出结果
- 样例输入
1 2
- 样例输出
2
#include<stdio.h>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)); }}
题解看图:
0 0
- nyoj-222 整数中的1
- NYOJ - 整数中的1
- NYOJ 514(整数中的1)
- NYOJ 222 整数中的1 (二进制位运算,找规律)
- NYOJ-整数中的1-找规律,迭代
- nyoj 90 整数划分
- 整数划分 NYOJ 90
- nyoj 90 整数划分
- NYOJ - 整数划分
- 整数划分 nyoj 90
- nyoj 90 整数划分
- Nyoj 90 整数划分
- NYOJ 90整数划分
- nyoj-90-整数划分
- NYOJ 90 整数划分
- Nyoj 571 整数划分
- 整数划分(nyoj 571)
- NYOJ 整数划分(三)
- PRIMARY KEY、UNIQUE KEY、INDEX区别
- Python入门编程的闲杂知识点自结
- 综合案例:输入一个整数判定是否素数
- 解析如何防止XSS跨站脚本攻击
- 点灯问题
- nyoj-222 整数中的1
- Android去掉标题栏和全屏
- Get 与Post 的区别
- C++重载——重载概述
- Java解析XML汇总
- ORA-01555超长的Query Duration时间
- android 禁用和开启四大组件的方法(setComponentEnabledSetting )
- 二分查找
- fedora 19(KDE)配置NFS