Algorithmus
20200811 임시, 추가 변수없이 두 정수값 교체
최승길
2020. 8. 11. 18:18
http://www.csharpstudy.com/algo/qa.aspx?Id=17&pg=0
두개의 정수 a,b의 값을 서로 바꾸는 C# 코드를 쓰시오. (단, a,b이외의 임시 변수 사용 불가)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Algorithm20200811 { class Program { static void Main(string[] args) { int a = 17; int b = 11; a ^= b; b ^= a; a ^= b; Console.WriteLine("{0}, {1}", a, b); Console.ReadKey(); } } } | cs |
1.a^=b
a = a^b, b=b
2.b^=a
a = a^b, b = b^(a^b) = a^(b^b) = a^0 = a
3.a^=b
a = (a^b)^b = a^(b^b) = a^0 = a, b=a
4.WriteLine()
a = 11, b = 17
XOR교체
*그냥 하나 더 쓰자..