진짜 어려운 프로그래밍 퀴즈 문제

cleansugar의 이미지

이거 어려운데 여기 맞출 수 있는 분 계실까요?

저는 답을 모릅니다.

출처도 모르고요.

출처 아시는 분 알려주세요.

그리고 이런 문제가 해킹과 관련이 있나요?

File attachments: 
첨부파일 크기
Image icon Screenshot_2013-03-19-08-11-40-1.png65.02 KB
cleansugar의 이미지

11자 걸리는 게 난관입니다. function은 8자 victory나 main은 사용금지 variable도 8자.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

HDNua의 이미지

typedef int (*f)();
int variable = 1;
 
int victory()
{
    printf("test");
    return 0;
}
 
int function()
{
    if (variable == 1)
        return g();}g(){
    5;
    victory();
}
 
int main()
{
    function();
    return 0;
}

참 쉽죠?

저는 이렇게 생각했습니다.

cleansugar의 이미지

저도 저번에 이거 생각해봤는데요. g앞에 리턴 값 없으면 에러납니다. ISO 표준이래요.
http://ideone.com/2T36xc

제일 짧은 int 넣어도 리턴값이 아래에 없으니 에러나고요.

다른 방법 없을까요?

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

HDNua의 이미지

1. C의 경우는 기본 함수 반환형이 int라 컴파일에 문제가 없는 줄로 압니다.
C++는 기본 함수 반환형이 int가 아니기 때문에 C++로 컴파일했을 때 에러를 뱉는 것 아닐까요?

모든 경로에서 값을 반환하지 않는 문제는 에러보단 경고로 봐야 할 듯 합니다.
(문제의 function 함수조차도 값을 반환하지 않는 경로가 있네요.)

2. 위에 f라는 타입이 정의되어있으니, 이를 이용한다면
g();}f g(){ 로 딱 11글자가 맞춰지기는 하네요.
근데 타입이 안 맞아서 컴파일이 될지는 모르겠습니다.

이외의 다른 방법은 한 번 생각해봐야겠습니다ㅎㅎ

저는 이렇게 생각했습니다.