耐人寻味的数值类数据交换:不使用第三方变量进行数据交换
来源:互联网 发布:星际争霸1数据 编辑:程序博客网 时间:2024/05/22 15:43
对于本篇博客,我实则很早之前就想写了。不过,当时没有时间,就拖到今天写了。
对于数值类型的数据,当2个变量进行数据交换时,我们一般会使用第三方变量进行数值交换。代码与运行结果如下所示:
代码
public static void main(String[] args) {// 使用第3方变量来进行数据交换test1();// 不使用第3方变量进行数据交换:算法方式一//test2();// 不使用第3方变量进行数据交换:算法方式二//test3();}public static void test1() {double a = 3.14, b = 5.28, c = 0.0;System.out.println("交换前a、b的值为:");System.out.println("a= " + a);System.out.println("b= " + b);c = a;a = b;b = c;System.out.println("交换后a、b的值为:");System.out.println("a= " + a);System.out.println("b= " + b);System.out.println("c= " + c);}
运行结果
同时,对于2个数值型数据进行交换时,也可不采用第三方变量的方式来实现。在这里,我自己列出2个小的算法来实现这个功能。对于2个算法之间为何会出现一些精确度数据的差异,我个人也是不懂。如果有知道的网友,可以回复我,告知一下,谢谢。
算法方式一:
代码
public static void main(String[] args) {// 使用第3方变量来进行数据交换//test1();// 不使用第3方变量进行数据交换:算法方式一test2();// 不使用第3方变量进行数据交换:算法方式二//test3();}
public static void test2() {double a = 3.14, b = 5.28;System.out.println("交换前a、b的值为:");System.out.println("a= " + a);System.out.println("b= " + b);a = a + b; b = a - b;a = a - b;System.out.println("交换后a、b的值为:");System.out.println("a= " + a);System.out.println("b= " + b);}
运行结果
算法方式二:
代码
public static void main(String[] args) {// 使用第3方变量来进行数据交换//test1();// 不使用第3方变量进行数据交换:算法方式一//test2();// 不使用第3方变量进行数据交换:算法方式二test3();}public static void test3() {double a = 3.14, b = 5.28;System.out.println("交换前a、b的值为:");System.out.println("a= " + a);System.out.println("b= " + b);a = a - b; b = a + b; a = b - a;System.out.println("交换后a、b的值为:");System.out.println("a= " + a);System.out.println("b= " + b);}
运行结果
阅读全文
1 0
- 耐人寻味的数值类数据交换:不使用第三方变量进行数据交换
- 不使用第三变量交换两个数值型数据
- 如何不使用第三个变量进行数据交换?
- 不使用第三方变量交换两个数值变量的值(java语言)
- 不使用第三方变量交换两个变量的值
- 不使用第三方变量交换两个变量的值
- 不使用第三方变量交换两个变量的值
- 不使用第三方变量交换两个变量的值
- 不使用第三方变量交换两个变量的值
- 不使用第三方变量,交换两个变量的值
- 不使用第三方变量交换两个变量的值
- 不使用第三方变量,交换两个变量的值
- 不借助第三方变量交换两个数值
- 不使用第三方变量交换函数的两个参数
- 不使用第三方变量交换两个参数的值
- C程序中交换两个变量数值,不使用第三方变量(四种方式)
- 不添加第三个变量交换两个变量的数据
- 不使用第三个变量来交换连个数据
- python学习笔记(三)
- mvc
- sql整理之习题..
- Spring MVC静态资源处理
- PHP专题之三大常用缓存
- 耐人寻味的数值类数据交换:不使用第三方变量进行数据交换
- 2017-8-17——2017-8-27
- Lua 5.3 源码分析(三) 全局状态机global_State
- 深入分析ConcurrentHashMap的锁分段技术
- poj 1861 Network
- C语言知识点补充(1)
- 《黑龙江省对地观测与导航工程技术创新平台》获批中央引导地方科技发展专项
- 由TextInputFormat编译错误到Hadoop.mapred包和Hadoop.mapreduce包的区别
- 各种技术相关的开发经验