개발자 99% 커뮤니티에서 수다 떨어요!
💡 연습문제 16
간단한 현실 점검, 다음'불가능한'것들 중 무엇이 실제로 일어날 수 있는가?
1. 한 달이 28일 보다 적은 것.
2. 시스템 콜의 오류 메세지: 현재 디렉토리에 접근할 수 없음.
3. C++에서, a = 2; b = 3; 하지만 (a + b) 는 5 가 아님.
4. 내각의 합이 180도가 아닌 삼각형.
5. 1분이 60초가 아님.
6. (a + 1) <= a
✅ 풀이 과정
한 달이 28일보다 적은것을 찾아보다 오히러 하루 많은 윤년 에 대해서 알아보면 좋을거같아 알아보니 이중윤년 이라는 게 있다는걸 알게 되었습니다, 근데 이중윤년이 생긴 이유가 그레고리력이라는것이였는데 , 그것이 그레고리 교황이 달력 개혁을할떄 날짜를 맞추기위해 1582년 10월 4일
목요일의 다음날을 10월 15일 금요일로삼아 사라진 날짜는 나라마다 다를수는있지만 28일 보다 적은날 이 있다! 라는것을 알게되었습니다.
폴더가 사용하기전에 삭제되었거나 파일에 대한 권한이 없거나 그런경우 접근할수없는 일이 일어나기때문에 일어날수있다고생각합니다.
C++이기 때문에 앞쪽에서 계산을 하다가 a나 b의 공간이 있는 곳의 값이 이 바뀔 수도 있기 때문에 5가 아닌 다른수가 나올수있다고생각합니다.
비 유클리드 기하학 에서 삼각형의 내각이 180도가 아닐수도있어서 180도가아닌 삼각형이 있을수있습니다.
1분이 60초 가아닌걸 찾다보니 61초인 윤초 가있었습니다.
뱃사공이 많으면 배가 산으로 간다 라는 ,, 것이있어 a+ 1 이되면 하나보다 못할가능성이있어..그럴수도 있다고생각합니다..
✅ 참고 링크
-
💡책에 있는 해답
1. 1752년 9월은 30일이 아니라 19일밖에 없다. 그레고리 교황의 달력 개혁의 일환으로 달력의 날짜를 맞추기 위해 이렇게 만들었다.
다른 프로세스가 디렉터리를 지웠을 수도 있고, 디렉터리를 읽을 권한이 없을 수도 있다. 드라이브가 마운트되지 않았을 수도 있고, 그 밖에 여러 가지 문제가 있을 수 있다. 어떤 상황인지 감이 왔으리라.
이 문제의 함정은 a 와 b 의 타입을 명시하지 않았다는 점이다. 연산자 오버 로딩 때문에 + , = , != 가 예상과는 다르게 동작할 수 있다. 또 a 와 b 가 동일한 변수를 가리키고 있을 수도 있다. 그럴 경우 두 번째 할당문이 첫 번째 할당문에서 저장한 값을 덮어쓸 것이다. 또한 프로그램에 동시성이 있는데 이에 대한 고려가 되지 않아서 a 의 값이 덧셈이 수행되기 직전에 바뀌었을 수도 있다. ·
비유클리드 기하학에서 삼각형 내각의 합은 180°가 아닐 수 있다. 구 표면에 그려진 삼각형을 생각해 보라. ·
윤초 leap second 때문에 61초일 수 있다. ·
언어에 따라서 숫자가 최대 숫자 한계를 넘어가는 overflow 바람에 a+1 의 부호가 음수로 바뀔 수도 있다.