hdu 5980 · Find Small A【位运算】【手速题】
来源:互联网 发布:叉叉助手获取数据失败 编辑:程序博客网 时间:2024/06/16 21:21
这是一道水题,把它单独分出一篇文章是有些小心机的。
【题意】
将输入的n个数分别转换成n个32位二进制数,判断每8位二进制数组成的十进制数是不是97,并记录97出现的次数,最后输出记录的次数。
【提炼】
不用提炼。
【分析】
可以用模拟的方法存下二进制数,然后每八位进行判断。
Tips:数很大(2^32超过int范围2^31),请使用long long或者__int64(这个没试过,理论上也可以)。
这里介绍另一种方法:
我们使用%u(即十进制无符号)每次输入8位二进制数[直接就可以这样做,不用做特殊操作,循环4次即可],4次循环也就是32位,将输入的8位二进制数与 0xFF (即
代码实现简单,考虑1A。
【代码】
/* coder: Tangent Chang date: 2017/5/1 Your internal mediocrity is the moment when you lost the faith of being excellent!*/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cstdlib>#include<cmath>#include<vector>#include<queue>#include<map>using namespace std;typedef long long ll;const int maxn = 100001;const double PI = acos(-1.0);const int INF = 0x3f3f3f3f;const int EPS = -1e9;const int MOD = 1000000007;int main() { int T, a; scanf("%d", &T); int cnt = 0; while (T--) { for (int i = scanf("%u", &a); i < 5; ++i) { if ((a & 0xFF) == 'a') cnt ++; a >>= 8; } } printf("%d\n", cnt); return 0;}
0 0
- hdu 5980 · Find Small A【位运算】【手速题】
- HDU-5980 Find Small A(位运算)
- hdu 5980 Find Small A(位运算思维)
- hdu 5980 Find Small A(位操作)
- HDU Find Small A(进制转换 位运算)
- 位运算--hdu5980 Find Small A
- hdu 5980 Find Small A(二进制位运算)
- hdu 5980 Find Small A
- HDU 5980 Find Small A
- Hdu-5980-Find Small A
- HDU 5980 Find Small A
- HDU 5980 Find Small A
- hdu 5980 Find Small A
- hdu-5980-Find Small A
- HDU 5980 Find Small A(水题)
- HDU 5980 - Find Small A(思维)
- Find Small A [HDU-5980] (水)
- HDU 5980 Find Small A(对二进制理解)
- Unity 求两个向量间夹角
- 线程阶段测试分析
- 为什么qt种提示找不到#include <QApplication>
- Eclipse 使用 jdbc 连接 mysql
- javascript
- hdu 5980 · Find Small A【位运算】【手速题】
- C++单刷《机器学习实战》之二——决策树
- git 安装与SSH配置
- [leetcode]: 485. Max Consecutive Ones
- SAPUI5 (35)
- 2440超详细uboot移植笔记(一)------分析源码
- 191_IO流_BufferedReader_InputStreamReader详解
- 深入理解 I/O 概念
- 剑指offer-面试题38-数字在排序数组中出现的次数