颠覆传统方法:惊艳_AX
【问题】
a=10,b=15,在不用第三方变题的前提下,把a,b的值互换
【新解】
【举一反二】
【分析】
第一种方法先求和,再用和减去每个加数,得到另外一个加数,
第二、三种方法根据两个数的差,从特例推一般,不好理解,但我能想到已经很不容易了^_^.我刚刚看到题目时就是这么想的,但没想明白,没想到敲敲代码,验证了下还是通用的.
还是第一种方法爽!!!
【后记】从学编程的第一课就接触到这个问题了,一直用第三个临时变量交换数据,今天偶然在网上看到这个新解,有种别有洞天的感觉,不是不行,是根本就没想过.思维定势有有点也有缺点啊!!
a=10,b=15,在不用第三方变题的前提下,把a,b的值互换
【新解】
a=a+b;
b=a-b;
a=a-b;
b=a-b;
a=a-b;
【举一反二】
a=a-b; //a=-5
b=a+b; //b=10
a=b-a; //a=15
-------------------
a=b-a; //a=5
b=b-a; //b=10
a=b+a; //a=15
b=a+b; //b=10
a=b-a; //a=15
-------------------
a=b-a; //a=5
b=b-a; //b=10
a=b+a; //a=15
【分析】
第一种方法先求和,再用和减去每个加数,得到另外一个加数,
第二、三种方法根据两个数的差,从特例推一般,不好理解,但我能想到已经很不容易了^_^.我刚刚看到题目时就是这么想的,但没想明白,没想到敲敲代码,验证了下还是通用的.
还是第一种方法爽!!!
【后记】从学编程的第一课就接触到这个问题了,一直用第三个临时变量交换数据,今天偶然在网上看到这个新解,有种别有洞天的感觉,不是不行,是根本就没想过.思维定势有有点也有缺点啊!!
少帮主的斧头好久不饮血了!