九度OJ 1151:位操作练习 (位操作)
2024-08-29 14:08:38
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:1679
解决:924
- 题目描述:
-
给出两个不大于65535的非负整数,判断其中一个的16位二进制表示形式,是否能由另一个的16位二进制表示形式经过循环左移若干位而得到。
循环左移和普通左移的区别在于:最左边的那一位经过循环左移一位后就会被移到最右边去。比如:
1011 0000 0000 0001 经过循环左移一位后,变成 0110 0000 0000 0011, 若是循环左移2位,则变成 1100 0000 0000 0110
- 输入:
-
第一行是个整数n, 0 < n < 300000,表示后面还有n行数据
后面是n行,每行有两个不大于65535的非负整数
- 输出:
-
对于每一行的两个整数,输出一行,内容为YES或NO
- 样例输入:
-
4
2 4
9 18
45057 49158
7 12
- 样例输出:
-
YES
YES
YES
NO
思路:
用另一个数暂存普通左移会丢掉的部分,然后补上。
代码:
#include <stdio.h> int main(void)
{
int n, i, j;
unsigned short a, b;
int flag; while (scanf("%d", &n) != EOF)
{
for (i=0; i<n; i++)
{
scanf("%hu%hu", &a, &b);
for (j=0; j<16; j++)
{
flag = a&1;
a >>= 1;
a |= flag<<15;
if (a == b)
{
printf("YES\n");
break;
}
}
if (j==16)
printf("NO\n");
}
} return 0;
}
/**************************************************************
Problem: 1151
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/
最新文章
- CSS3导航效果
- struts 文件上传下载
- setTimeout 方法用于在指定的毫秒数后调用函数或计算表达式
- python 数据结构
- [Ext JS 4] 实战之Grid, Tree Gird 添加按钮列
- 工欲善其事必先利其器---SQL在线可视化模型设计,(还可学习拖拽知识)
- 【转】Alsa音频编程【精华】
- Windows 系统消息范围和前缀,以及消息大全
- glib 文档 代码 索引 编译
- angularjs ajax传参
- DAG路径覆盖模型
- Codeforces 346D Robot Control(01BFS)
- Ubuntu下pdf和图片互转
- Android设备终端监控可能用到的工具
- 【XMPP】Smack源码之消息接收与解析
- TS学习之for..of
- HDU3081(KB11-N 二分答案+最大流)
- java List去重方式及效率对比
- HTML CSS + DIV实现整体布局 part1
- linux-统计文本中符合条件的内容
热门文章
- (7)JavaScript-BOM(浏览器对象模 型)
- 洛谷——P1130 红牌
- [java基础] 002 - 位运算符的详解和妙用
- 获取元素位置信息和所占空间大小(via:js&;jquery)
- new子类会先运行父类的构造函数
- 获取Android系统默认给每个app分配的内存上限
- jmeter3.x的jtx文件解析
- EclipseADT(4.2) 安装 STS(spring )
- &;lt;LeetCode OJ&;gt; 83. Remove Duplicates from Sorted List
- 每天学点Python之bytes