黑马程序员技术交流社区

标题: 不利用第三方变量交换两个变量值的问题 [打印本页]

作者: 白飞金    时间: 2013-4-30 23:14
标题: 不利用第三方变量交换两个变量值的问题
本帖最后由 白飞金 于 2013-5-2 09:15 编辑

1. n = n ^ m;
2. m = n ^ m;
3. n = n ^ m; //n^(n^m)
问题是:第三行的注释中n为什么而是n而不是(n^m),难道不是第三行的n不是第一行等号左边的n吗???

作者: 一川    时间: 2013-4-30 23:48
1 n = n^m;
2 m = n^m = (n^m)^m = n;
3 n = n^m = (n^m)^n = m;
第三行如果是n = n^(n^m) = (n^m)^((n^m)^n) = n
这里的n不是第一行左边的n,它的值已经变了,是n^m
你可以设变量m、n的原值分别为x、y,然后带入算,就一目了然了
如:
n = n^m = x^y;
m = n^m = (x^y)^y = x;
n = n^m = (x^y)^x = y;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2