给出两个整数,L和R,其中L<=A<=B<=R,然后求出A^B值最大的数。其中1<=L<=R<=1000.

比如说L = 1;R = 3;

L 0001

R 0011

LR中间还有 0010,其中的最大值是0001 ^ 0010 = 0011;输出就是2.

写出一个函数计算这个数;

我写了一个,但是没通过最终测试,只有12分,总分20分,不知道哪里还需要改进?

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. #include <assert.h>
  6. #define MAXSIZE (1000)
  7. /*
  8.  求两个数的最大异或值。
  9. */
  10.  
  11. /*
  12. *
  13. */
  14. int maxXor(int l, int r)
  15. {
  16. //ASSERT 使用方法:放在函数开始,检测函数参数的合法性
  17. assert(l >= );
  18. assert(r <= MAXSIZE);
  19. assert(l <= r);
  20.  
  21. //二进制位数
  22. int lengthL = sizeof(l) * ;
  23. int lengthR = sizeof(r) * ;
  24. //最大值
  25. int max = ;
  26. int len = (l+r)/;
  27. //标志位
  28. int flag0 ,flag1;
  29. //两个for循环遍历所有肯能的组合数
  30. for (int i = l ; i <= len; i++)
  31. {
  32. //printf("i=%d",i);
  33.  
  34. for (int j = r ; j >= len; j--)
  35. {
  36. //printf("j=%d\n",j);
  37.  
  38. //初始化各种值
  39. lengthL = sizeof(l) * ;
  40. lengthR = sizeof(r) * ;
  41. flag0 = ;
  42. flag1 = ;
  43.  
  44. //从最高位开始判断
  45. while (lengthL -- > && lengthR -- >)
  46. {
  47. if(i>>lengthL ^ j>>lengthR)//异或为1,记录
  48. {
  49. // printf("flag1=%d\n",flag1);
  50. flag1 ++;//
  51. }
  52. else
  53. {
  54. //printf("flag0=%d\n",flag0);
  55. flag0 ++;
  56. if(flag1 != )//如果异或结果先出现1之后再次出现0,肯定不是最大值,退出while循环
  57. {
  58. printf("break\n");
  59. break;//退出while循环,取下一个数
  60. }
  61. }
  62. //输出最大值,前提就是没有提前退出循环,那样才有可能是最大值
  63. //比较所有符合要求的值,然后取最大值
  64. if((flag0 + flag1) == sizeof(l) * )
  65. {
  66. if(max < (i ^ j))
  67. {
  68. max = (i ^ j);
  69. // printf("输出最大值=%d\n",max);
  70.  
  71. }
  72. }
  73. }
  74.  
  75. }
  76.  
  77. }
  78. //printf("输出最大值:\n");
  79.  
  80. return max;
  81. }
  82.  
  83. int main()
  84. {
  85. int res;
  86. int _l;
  87. scanf("%d", &_l);
  88.  
  89. int _r;
  90. scanf("%d", &_r);
  91.  
  92. res = maxXor(_l, _r);
  93. printf("%d", res);
  94.  
  95. return ;
  96. }

C语言编程题002的更多相关文章

  1. 2018.3 江苏省计算机等级考试 C语言 编程题答案

    题目要求:给定一个数字范围,输出满足这些条件: 1.能被3整除: 2.包含数字5, 将满足的数字放在特定的数组里输出.输出这些数里5出现的个数.数字的个数. 想起来有点伤心,本来很简单的题,考试的时候 ...

  2. C语言编程题

    1.将整形a的第m位赋值到整形b的第n位 int fun4(int a, int m, int b, int n) { a = (a>>m) & ;//将a的第m位取出,为1或0, ...

  3. C语言编程题001

    有一颗树,一年两个生长周期,春天它长高一倍,夏天长高1m,问N个周期后树有多高?假设从春天开始树高为1m,第0个周期树高为1m. 要求:1.可以同时输入多个生长周期 如:3//表示下面有几个生长周期 ...

  4. 记一道C语言编程题(C语言学习笔记)

    题目如下 解答如下 #include <stdio.h> #include<math.h> double Mysqrt(double n) { return sqrt(n); ...

  5. 程序设计入门—Java语言 第六周编程题 1 单词长度(4分)

    第六周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 1 单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这 ...

  6. C语言程序设计进阶 第1周编程题

    第1周编程题 查看帮助 返回 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数 ...

  7. 面向对象程序设计--Java语言第二周编程题:有秒计时的数字时钟

    有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做 ...

  8. 中国MOOC_面向对象程序设计——Java语言_期末考试编程题_1细胞自动机

    期末考试编程题 返回   这是期末考试的编程题 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成 ...

  9. 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零

    期末考试的编程题 返回   这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...

随机推荐

  1. GitLab关于SSH的使用

    SSH Git是分布式版本控制系统,这意味着您可以在本地工作,但您也可以将更改共享或“推送”到其他服务器.在将更改推送到GitLab服务器之前,您需要一个用于共享信息的安全通信通道. SSH协议提供此 ...

  2. iOS JS 交互之利用系统JSContext实现 JS调用OC方法以及Objective-C调用JavaScript方法

    ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择拷贝到工程中,(拖入的文件夹是蓝色 ...

  3. sudo用户权限添加问题

    现象:通过visudo或者vim /etc/sudoers文件添加用户权限后,该用户测试时依然需要输入密码解决:查看/etc/passwd用户id可能重复并且重复的uid排在该用户上面

  4. linux 链接的使用 创建和删除符号连接

    1 . 使用方式 :ln [option] source_file dist_file                     -f 建立时,将同档案名删除.                     ...

  5. 【Python音乐生成】可能有用的一些Python库

    1,Python-MIDI,很多操作库的前置库.作者提供了一个python3的branch.git clone下来之后注意切换到这个branch之后再运行setup.py. 实际使用的时候,使用 im ...

  6. 如何查看CRM WebUI,C4C和Hybris里的页面技术信息

    CRM 在WebClient UI页面上按F2,就能看到页面的技术信息, 可以找到当前页面是哪一个BSP component实现的: C4C 在浏览器url里添加debugMode=true,然后按住 ...

  7. SwiftHN阅读器应用IOS源码

    SwiftHN是用Swift语言编写的Hacker News阅读器,同时采用了iOS 8最新的API. <ignore_js_op> <ignore_js_op> 详细说明:h ...

  8. python 基础之列表切片内置方法

    列表操作 c=['cx','zrd','ajt','dne'] #定义一个列表,有4个元素 #增删改查 print(c[3]) #从0计数 测试 D:\python\python.exe D:/unt ...

  9. 使用webpack从零开始搭建react项目

    webpack中文文档 webpack的安装 yarn add webpack@3.10.1 --dev 需要处理的文件类型 webpack常用模块 webpack-dev-server yarn a ...

  10. python_66_生成器2

    import time def consumer(name): print('%s准备吃包子 '%name) while True: baozi=yield print('包子[%s]来了,被[%s] ...