20200811 임시, 추가 변수없이 두 정수값 교체

Algorithmus 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교체

*그냥 하나 더 쓰자..

'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
: