최현우의 마술 eBook(그녀 마음 훔치기 10분 전 (마술 편)) 을 우연히 구매하게 되어서 보던 중에
트릭 중에 한가지가 숫자에 관한 트릭이 있길래 증명해 보고자 지난 금요일부터 머리좀 싸매봄..
// 1. 백단위의 세자리 숫자를 생각한다
// 2. 원래 세자리 숫자와 거꾸로 한 숫자 중에서 큰 값에서 작은값을 뺀다
// 3. 결과값과 결과값을 거꾸로 한 숫자를 서로 더한다.
// 아래 소스에서 r 이 붙은 변수명은 순서가 뒤집혀진 숫자임.
int x1 = 8; // 첫째자리
int x2 = 9; // 두째자리
int x3 = 0; // 셋째자리
int x = (x1 * 100) + (x2 * 10) + (x3 * 1); // 처음 생각한 3자리 숫자
int xr = (x3 * 100) + (x2 * 10) + (x1 * 1); // 뒤집은 수
int y = Math.Abs(x - xr); // 차이
y = (x1 * 99) + (x2 * 0) - (x3 * 99); // 차이1
y = (x3 * 99) + (x2 * 0) - (x1 * 99); // 차이2
y = Math.Abs(x1 - x3) * 99; // 첫째자리와 셋째자리의 차이의 99 배
int n = Math.Abs(x1 - x3);
y = n * 99;
y = (n * 100) - n;
y = ((n - 1) * 100) + (9 * 10) + ((10 - n) * 1); // n백이라는 숫자에서 n 를 빼면 (n 는 한자리의 수이므로) => 백의 자리는 n-1, 십의 자리는 9, 일의 자리는 10-n ( 여기가 가장 중요 포인트 )
int yr = ((10 - n) * 100) + (9 * 10) + ((n - 1) * 1);
int z = y + yr;
z = ((n - 1 + 10 - n) * 100) + (9 * 20) + ((10 - n + n - 1) * 1);
z = (9 * 100) + (180) + (9 * 1);
z = 1089;