当前位置: 首页 > news >正文

申诉

前些日子 ISCteam要招 intern,我帮着出了道题 被扔在选作题里面(居然还被标为英文阅读题。。。庐山瀑布汗)
面试的同志们打完了 由出题人负责打分 如果不满意可以进行申诉

不过 我倒还真没想到我的题也有考生会来申诉
前两道都是任务相关,最后一道是一个问如果交换变量 如何用时间换空间 写段代码出来

基本上来讲 对就是对 错就是错 明明没什么好说的呀。

此君申辩 略过不表 (反正被我说的服了,一点脾气也没有)

在这里小谈下时间换空间的方法 抛个转头 等着有玉来砸

时间换空间
时间资源是什么 估计大家都知道,顾名思义么。
空间资源是什么,就是我们的硬件资源,CPU 内存什么的

一般的交换方法 大家都会
设个中间变量做中继来交换
tmp = a
a = b
b = tmp

但既然是时间换空间 自然要尽量减少空间消耗 也就是 不用中间变量
这个时候 简单的办法是
两数叠加再分配
a = a+b
b = a-b
a = a-b
但许多情况是要被考虑的 比如 超过上限怎么办
此时就可以判断两数是否同号,若是不同号则用符号比较就好, 同号的话 可以用减法代替加法 来处理掉

当年还在某个群厮混的时候还看到了某一牛人的写法
好像是
a^=b^=a^=b
大概是这样的,是用异或的办法来处理

当然 在某些可以用指针的语言里就更方便了 交换个地址就成了
由于对指针已经忘光了 在这里 抄袭下别人的文章 来说明这个问题
if(a

a=(int*)(b-a); 
b=(int*)(b-(int(a)&0x0000ffff)); 
a=(int*)(b+(int(a)&0x0000ffff)); 

else 

b=(int*)(a-b); 
a=(int*)(a-(int(b)&0x0000ffff)); 
b=(int*)(a+(int(b)&0x0000ffff)); 

之所以分两种情况是为了避免 地址计算出现负数

大概能想到的就这么多。
不过 在考卷中有个答案还是令我耳目一新并埋怨自己怎么把老本行都忘记了
那就是单片机
将两个变量分别赋予 AH AL 然后让AX自滚动4位 就好了


砖头已出 待玉登场~


http://www.taodudu.cc/news/show-6111189.html

相关文章:

  • CSDN如何在个人主页开启自定义模块|微信公众号
  • 从零到屎山系列-游戏开发(序章)
  • Ubuntu彻底卸载删除cuda12.1
  • 字典及GitHub字典爬取工具
  • PostgreSQL 把多余字段转JSON
  • 0066__使用GDBServer进行远程调试
  • 我要申诉
  • u如宽容与宽容
  • 什么是宽容?你是一个有宽容心的人吗?
  • 承认多元化,保持宽容
  • 宽容和感恩的胸襟
  • [企业管理]宽容与尊严
  • 学会原谅、学会宽容
  • 宽 恕
  • 宽容是一种修养
  • 宽容那些与我们不同的人
  • 对自己越苛刻,生活对你越宽容;对自己越宽容,生活对你越苛刻。
  • 宽容之道
  • 您能不能也宽容一点??
  • 家是宽容
  • 我学会了宽容
  • 宽容是一种恶
  • 网络拥塞控制,对越远的流量越宽容
  • 学会宽容
  • 下沉市场三巨头,趣头条全面掉队
  • 鸿蒙系统报名选择一个应用,申请鸿蒙系统有一个应用选择怎么选择呢
  • 今日头条还可以引流么?今日头条引流效果怎么样?
  • 今日头条怎么引流?头条暴力引流方法
  • docker搭建LNRP环境
  • linux服务器安装php7_在CentOS 8上安装PHP 7.2、PHP 7.3、PHP 7.4的方法
  • NFS服务器配置与管理笔记
  • rockyLinux 初体验PostgreSQL15详细安装教程
  • @Zabbix6.2安装部署【 Red Hat Linux release 8.0】
  • linux安装gcc运行时库,现在可以在CentOS 8系统下用命令安装GCC 8.3.1版本
  • Hadoop-3.3.0安装 Centos 8.2安装Hadoop-3.3.0 Hadoop-3.3.0安装指南
  • 如何在CentOS 8上安装Docker