C
[C/C++]임시 변수 없이 두 개의 정수 값을 교환하기
Junk_Seo
2023. 11. 8. 15:22
반응형
1. 개요
- c/c++에서 각 변수에 저장된 정수 값 x, y를 교환할 때 임시 변수를 사용하는데, 이 임시 변수 없이 교환하는 방법을 정리합니다.
2. 해결
- 곱셈과 나눗셈을 사용하여 이 문제를 해결합니다.
- 해결 과정은 다음과 같습니다.
- a에 a * b의 값을 저장
- a = a * b
- b
- b에 a / b 값을 저장
- a = a * b
- b = (a * b) / b
- a에 a / b 값을 저장
- a = (a * b) / ((a * b) / b)
- b = (a * b) / b
- 결론
- a = ((a * b) * b) / (a * b) == b
- b = (a * b) / b == a
- a에 a * b의 값을 저장
3. 구현
- 위에서 해결한 과정을 코드로 구현해 봅니다.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int a = 10;
int b = 20;
printf("a = [%d], b = [%d]\n", a, b);
a *= b;
b = a / b;
a /= b;
printf("a = [%d], b = [%d]\n", a, b);
return 0;
}
반응형