20200811 임시, 추가 변수없이 두 정수값 교체
Algorithmus 2020. 8. 11. 18:18http://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교체
*그냥 하나 더 쓰자..
'Algorithmus' 카테고리의 다른 글
C# 10430 분배법칙 (0) | 2021.10.25 |
---|---|
[설탕 배달]06-12 (0) | 2019.06.12 |
AStar algorithm 4방향(캐릭터 이동) (0) | 2019.05.21 |
AStar algorithm (0) | 2019.05.20 |
[Palindrome Number]05-14 (0) | 2019.05.14 |