C语言编程题002
给出两个整数,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分,不知道哪里还需要改进?
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- #include <stdlib.h>
- #include <assert.h>
- #define MAXSIZE (1000)
- /*
- 求两个数的最大异或值。
- */
- /*
- *
- */
- int maxXor(int l, int r)
- {
- //ASSERT 使用方法:放在函数开始,检测函数参数的合法性
- assert(l >= );
- assert(r <= MAXSIZE);
- assert(l <= r);
- //二进制位数
- int lengthL = sizeof(l) * ;
- int lengthR = sizeof(r) * ;
- //最大值
- int max = ;
- int len = (l+r)/;
- //标志位
- int flag0 ,flag1;
- //两个for循环遍历所有肯能的组合数
- for (int i = l ; i <= len; i++)
- {
- //printf("i=%d",i);
- for (int j = r ; j >= len; j--)
- {
- //printf("j=%d\n",j);
- //初始化各种值
- lengthL = sizeof(l) * ;
- lengthR = sizeof(r) * ;
- flag0 = ;
- flag1 = ;
- //从最高位开始判断
- while (lengthL -- > && lengthR -- >)
- {
- if(i>>lengthL ^ j>>lengthR)//异或为1,记录
- {
- // printf("flag1=%d\n",flag1);
- flag1 ++;//
- }
- else
- {
- //printf("flag0=%d\n",flag0);
- flag0 ++;
- if(flag1 != )//如果异或结果先出现1之后再次出现0,肯定不是最大值,退出while循环
- {
- printf("break\n");
- break;//退出while循环,取下一个数
- }
- }
- //输出最大值,前提就是没有提前退出循环,那样才有可能是最大值
- //比较所有符合要求的值,然后取最大值
- if((flag0 + flag1) == sizeof(l) * )
- {
- if(max < (i ^ j))
- {
- max = (i ^ j);
- // printf("输出最大值=%d\n",max);
- }
- }
- }
- }
- }
- //printf("输出最大值:\n");
- return max;
- }
- int main()
- {
- int res;
- int _l;
- scanf("%d", &_l);
- int _r;
- scanf("%d", &_r);
- res = maxXor(_l, _r);
- printf("%d", res);
- return ;
- }
C语言编程题002的更多相关文章
- 2018.3 江苏省计算机等级考试 C语言 编程题答案
题目要求:给定一个数字范围,输出满足这些条件: 1.能被3整除: 2.包含数字5, 将满足的数字放在特定的数组里输出.输出这些数里5出现的个数.数字的个数. 想起来有点伤心,本来很简单的题,考试的时候 ...
- C语言编程题
1.将整形a的第m位赋值到整形b的第n位 int fun4(int a, int m, int b, int n) { a = (a>>m) & ;//将a的第m位取出,为1或0, ...
- C语言编程题001
有一颗树,一年两个生长周期,春天它长高一倍,夏天长高1m,问N个周期后树有多高?假设从春天开始树高为1m,第0个周期树高为1m. 要求:1.可以同时输入多个生长周期 如:3//表示下面有几个生长周期 ...
- 记一道C语言编程题(C语言学习笔记)
题目如下 解答如下 #include <stdio.h> #include<math.h> double Mysqrt(double n) { return sqrt(n); ...
- 程序设计入门—Java语言 第六周编程题 1 单词长度(4分)
第六周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 1 单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这 ...
- C语言程序设计进阶 第1周编程题
第1周编程题 查看帮助 返回 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数 ...
- 面向对象程序设计--Java语言第二周编程题:有秒计时的数字时钟
有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做 ...
- 中国MOOC_面向对象程序设计——Java语言_期末考试编程题_1细胞自动机
期末考试编程题 返回 这是期末考试的编程题 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成 ...
- 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零
期末考试的编程题 返回 这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...
随机推荐
- GitLab关于SSH的使用
SSH Git是分布式版本控制系统,这意味着您可以在本地工作,但您也可以将更改共享或“推送”到其他服务器.在将更改推送到GitLab服务器之前,您需要一个用于共享信息的安全通信通道. SSH协议提供此 ...
- iOS JS 交互之利用系统JSContext实现 JS调用OC方法以及Objective-C调用JavaScript方法
ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择拷贝到工程中,(拖入的文件夹是蓝色 ...
- sudo用户权限添加问题
现象:通过visudo或者vim /etc/sudoers文件添加用户权限后,该用户测试时依然需要输入密码解决:查看/etc/passwd用户id可能重复并且重复的uid排在该用户上面
- linux 链接的使用 创建和删除符号连接
1 . 使用方式 :ln [option] source_file dist_file -f 建立时,将同档案名删除. ...
- 【Python音乐生成】可能有用的一些Python库
1,Python-MIDI,很多操作库的前置库.作者提供了一个python3的branch.git clone下来之后注意切换到这个branch之后再运行setup.py. 实际使用的时候,使用 im ...
- 如何查看CRM WebUI,C4C和Hybris里的页面技术信息
CRM 在WebClient UI页面上按F2,就能看到页面的技术信息, 可以找到当前页面是哪一个BSP component实现的: C4C 在浏览器url里添加debugMode=true,然后按住 ...
- SwiftHN阅读器应用IOS源码
SwiftHN是用Swift语言编写的Hacker News阅读器,同时采用了iOS 8最新的API. <ignore_js_op> <ignore_js_op> 详细说明:h ...
- python 基础之列表切片内置方法
列表操作 c=['cx','zrd','ajt','dne'] #定义一个列表,有4个元素 #增删改查 print(c[3]) #从0计数 测试 D:\python\python.exe D:/unt ...
- 使用webpack从零开始搭建react项目
webpack中文文档 webpack的安装 yarn add webpack@3.10.1 --dev 需要处理的文件类型 webpack常用模块 webpack-dev-server yarn a ...
- python_66_生成器2
import time def consumer(name): print('%s准备吃包子 '%name) while True: baozi=yield print('包子[%s]来了,被[%s] ...