时间限制: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
来源:
2010年北京大学计算机研究生机试真题

思路:

用另一个数暂存普通左移会丢掉的部分,然后补上。

代码:

#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
****************************************************************/

最新文章

  1. CSS3导航效果
  2. struts 文件上传下载
  3. setTimeout 方法用于在指定的毫秒数后调用函数或计算表达式
  4. python 数据结构
  5. [Ext JS 4] 实战之Grid, Tree Gird 添加按钮列
  6. 工欲善其事必先利其器---SQL在线可视化模型设计,(还可学习拖拽知识)
  7. 【转】Alsa音频编程【精华】
  8. Windows 系统消息范围和前缀,以及消息大全
  9. glib 文档 代码 索引 编译
  10. angularjs ajax传参
  11. DAG路径覆盖模型
  12. Codeforces 346D Robot Control(01BFS)
  13. Ubuntu下pdf和图片互转
  14. Android设备终端监控可能用到的工具
  15. 【XMPP】Smack源码之消息接收与解析
  16. TS学习之for..of
  17. HDU3081(KB11-N 二分答案+最大流)
  18. java List去重方式及效率对比
  19. HTML CSS + DIV实现整体布局 part1
  20. linux-统计文本中符合条件的内容

热门文章

  1. (7)JavaScript-BOM(浏览器对象模 型)
  2. 洛谷——P1130 红牌
  3. [java基础] 002 - 位运算符的详解和妙用
  4. 获取元素位置信息和所占空间大小(via:js&amp;jquery)
  5. new子类会先运行父类的构造函数
  6. 获取Android系统默认给每个app分配的内存上限
  7. jmeter3.x的jtx文件解析
  8. EclipseADT(4.2) 安装 STS(spring )
  9. &amp;lt;LeetCode OJ&amp;gt; 83. Remove Duplicates from Sorted List
  10. 每天学点Python之bytes