如何使用临时变量交换两个以上的变量
Posted
技术标签:
【中文标题】如何使用临时变量交换两个以上的变量【英文标题】:How to swap more than two variables using temporary variables 【发布时间】:2013-05-25 12:42:00 【问题描述】:我试图弄清楚。有 4 个变量要交换,1,2,3 和 4。变量 1 是与 2 交换、2 与 3、3 与 4 和 4 与 1 交换。看起来很简单,但我只学会了如何交换两个变量如此,并且正在与更大的规模作斗争。我试过了
temp = 1
1 = 2
temp = 2
2 = 3
temp = 3
3 = 4
temp = 4
4 = 1
我需要多个临时变量吗?仍然只是初学者,任何帮助将不胜感激!
编辑:抱歉,忘记添加我正在为 java 编码。
【问题讨论】:
【参考方案1】:只需使用一个数组和一个循环,一个临时变量就足够了。 P-code,因为你没有提到语言:
array = 1, 2, 3, 4
tmp = array[0]
for i in [0, array.count - 1)
array[i] = array[i + 1]
array[array.count - 1] = tmp
【讨论】:
【参考方案2】:考虑第三步会发生什么。 1
的原始值(在第一行保存到temp
)丢失了,因为你用2
的值覆盖了temp
。
事实证明,没有必要保存2
的原始值的副本,因为1
中已经存在一个副本。这同样适用于所有其他变量(1
除外)。
因此,您唯一需要使用temp
的时间是在开始时保存1
的值(就像您目前正在做的那样),以及在最后分配@987654330 的原始值时@到4
。您不能使用1
,因为它已被覆盖,但出于此目的在temp
中保存了一份副本。
所以最终的代码是这样的:
temp = 1
1 = 2
2 = 3
3 = 4
4 = temp
【讨论】:
【参考方案3】:数组是满足您要求的更好方法。在您当前的伪代码中,您可以执行以下操作:
temp = 1
1 = 2
2 = 3
3 = 4
4 = temp
在 java 中,您可以使用数组执行以下操作:
int[] x = 5,15,25,35;
int temporary = x[0];
for(int j=0;j<x.length-1;j++)
x[j]=x[j+1];
x[x.length-1]=temporary;
【讨论】:
以上是关于如何使用临时变量交换两个以上的变量的主要内容,如果未能解决你的问题,请参考以下文章