程序员面试金典——解题总结: 9.17中等难题 17.1编写一个函数,不用临时变量,直接交换两个数
来源:互联网 发布:sql server报价 编辑:程序博客网 时间:2024/05/23 19:56
#include <iostream>#include <stdio.h>using namespace std;/*问题:编写一个函数,不用临时变量,直接交换两个数。分析:既然只提供两个数,那么只能通过这两个数的增加和减少来交换,缺少的临时变量必定通过这两个数本身起到了作用, 设两个数为a和b,那么原来交换有临时变量的写法是, temp = a , a = b, b = temp 不用临时变量,肯定就是a和b其中一个作为临时变量,不妨设为a , 如果a = b,就丢失a,不行,如果a = a也不行,那么可以用 a = a + b a = a + b b = a - b,此时b已经等于a a = a - b,此时a等于b了 之所以不用 a = a * b b = a / b,a = a / b,是因为不能保证b不为0输入:3 5 输出:5 3书上解法:关键:1还可以用异或的方式:利用异或中相同两数异或结果为0,任意数和0异或结果为该数本身a = a^b;//假设3或5,011 和 101,异或是: 110b = a^b;// 等同于 (a^b)^b = aa = a^b;//等同于 (a^b)^a = b*/void swap(int* ptrA , int* ptrB){*ptrA = *ptrA + *ptrB;*ptrB = *ptrA - *ptrB;*ptrA = *ptrA - *ptrB;}//异或进行交换void swapXOR(int* ptrA , int* ptrB){*ptrA ^= *ptrB;*ptrB ^= *ptrA;*ptrA ^= *ptrB;}void process(){int a , b;while(cin >> a >> b){int tempA = a;int tempB = b;swap(&a , &b);cout << a << " " << b << endl;/*swapXOR(&tempA , &tempB);cout << tempA << " " << tempB << endl;*/}}int main(int argc , char* argv[]){process();getchar();return 0;}
0 0
- 程序员面试金典——解题总结: 9.17中等难题 17.1编写一个函数,不用临时变量,直接交换两个数
- CareerCup 17中等难题 Q17.1 不用临时变量,直接交换两个数
- 程序员面试金典——解题总结: 9.17中等难题 17.4编写一个方法,找出两个数字中最大的那一个。不得使用if-else或其他比较运算符。
- 程序员面试金典——解题总结: 9.17中等难题 17.5珠玑妙算游戏
- 程序员面试金典——解题总结: 9.17中等难题 17.14句子分割
- 程序员面试金典——解题总结: 9.17中等难题 17.11给定rand5(),实现一个方法rand7()。也就是,给定一个产生0到4(含)随机数的方法,编写一个产生0到6(含)随机数的方法
- 程序员面试金典——解题总结: 9.17中等难题 17.3设计一个算法,算出n阶乘有多少个尾随0
- 程序员面试金典——解题总结: 9.17中等难题 17.9设计一个方法,找出任意指定单词在一本书中的出现频率
- 程序员面试金典——解题总结: 9.17中等难题 17.12设计一个算法,找出数组中两数之和为指定值的所有整数对。
- C:两个数直接交换,不用第三个临时变量
- 不用临时变量直接交换两个数的值
- 程序员面试金典——解题总结: 9.17中等难题 17.6给定一个整数数组,编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n - m越小越好,也就是说,找出
- 程序员面试金典——解题总结: 9.17中等难题 17.2判断井字游戏中某个玩家是否赢了游戏
- 程序员面试金典——解题总结: 9.17中等难题 17.13将二叉查找树转换为双向链表
- 不用临时变量交换两个数
- 交换两个数,不用临时变量
- 不用临时变量,交换两个数。
- 程序员面试金典——解题总结: 9.17中等难题 17.7给定一个整数,打印该整数的英文描述(例如 "One Thousand,Two Hundred-Thirty Four")
- centos命令
- 栈的压入、弹出序列
- cookie的作用范围
- mysql学习之连接查询
- 1006. Tree Traversals - Hard Version (35)解题报告
- 程序员面试金典——解题总结: 9.17中等难题 17.1编写一个函数,不用临时变量,直接交换两个数
- r语言中时间函数处理
- 面向对象
- 自定义图片比例适配控件 ProportionImageView
- 第三章——构建模块
- 仪表盘和图形编辑器 Grafana
- 安装WinXp时遇到蓝屏(BAD_POLL_CALLER)
- 递归问题深入到堆栈小结
- 自己写的一个超简单的伪登录。。。