컴파일러에게 "왜?" 우리 대부분은 코드가 제대로 작동하지 않을 때 좌절했습니다. 따라서 Mathworks는 why
질문에 답하는 멋진 작은 기능을 구현했습니다 . MATLAB에서 몇 가지 예를 제공하려면 :
why
The programmer suggested it.
why
To fool the tall good and smart system manager.
why(2)
You insisted on it.
why(46)
Bill insisted on it.
당신의 임무는 why
당신의 언어로 기능 을 구현하는 것입니다. 이 함수는 입력 인수를 사용 0
하거나 사용하지 않고 작동해야합니다 ( 또는 input 또는 -1
). 함수의 이름을 지정해야합니다 why
(또는 why(n)
STDIN으로 쓰면 적절한 문자열이 인쇄됩니다).
인수가 제공되지 않거나 인수가 0 또는 음수이면 출력 문자열은 임의의 유효한 구문이어야합니다. 그래서,이 함수해야한다 why
, why()
, why(0)
또는 why(-1)
반환하는 임의의 문장.
입력 인수 n
가 제공 되면 (STDIN이 아닌 함수 인수) 출력은 n 번째 문자열이어야합니다 (아래에 정의 됨). 따라서 why(1)
항상 동일한 결과를 출력 (인쇄 / 표시)해야합니다.
문장은 다음과 같이 구성됩니다 (유형 1, 유형 2 및 특수). 모든 문장은로 끝납니다 !
.
"Person" "ending" !
"Verb" "adjective" "Person" !
A list of special cases
명단 :
Stewie
Peter
Homer
The programmer
The system manager
You
엔딩 목록 :
suggested it
insisted on it
did it
동사 목록은 다음과 같습니다.
To fool
To satisfy
To please
형용사 목록 :
the smart
the bald
the tall
the rich
the stupid
특별한 경우 목록 :
How should I know?
Stop asking!
Don't ask!
번호가 매겨진 것을 선택하는 방법은 다음과 같습니다.
문장의 종류 :
Odd number => Type 1
Even number => Type 2
n % 7 = 0 => Type 3 (% is the modulus operator)
이름 : n 번째 이름은 모듈러스 (%)를 사용하여 정의됩니다.
n = 1: 1 % 7 => Stewie
n = 2: 2 % 7 => Peter
...
n = 6: 6 % 7 => You
n = 7: 7 % 7 => How should I know?
n = 11: 11 % 7 => The programmer
n = 14: 14 % 7 => Stop asking!
n = 21: 21 % 7 => Don't ask!
엔딩 : n 번째 엔딩은 모듈러스를 사용하여 정의됩니다. 엔딩 (1, 2 및 3)이 다음과 같이 나열되어 있다고 가정합니다 (1 2 2 3)
. 숫자가 항상 홀수이므로((n+1)/2 % 4)
n = 1: ((1+1)/2 % 4) => suggested it
n = 3: ((3+1)/2 % 4) => insisted on it
n = 13: ((13+1)/2 % 4) => did it
형용사 : n 번째 형용사는 모듈러스를 사용하여 정의됩니다. 숫자는 항상 짝수이므로 다음을 사용하십시오.(n % 10)/2
n = 2: (2 % 10)/2 => Smart
n = 6: (6 % 10)/2 => The tall
...
동사 : n 번째 동사는 모듈러스를 사용하여 정의됩니다. 동사 (1, 2 및 3)가 다음과 (1 2 2 3)
같이 나열되어 있다고 가정하십시오 . 숫자는 항상 동사에 대해 짝수이므로(n % 8) / 2
n = 2: (2 % 8)/2 => To fool
n = 4: (4 % 8)/2 => To satisfy
n = 6: (6 % 8)/2 => To satisfy
n = 8: (8 % 8)/2 => To please
이제 랜덤을 생성하는 방법은 매우 간단해야합니다 n
. 랜덤을 선택하면 됩니다.
몇 가지 예 :
why
You suggested it!
why
To fool the tall Homer!
why
Don't ask!
why(1)
Stewie suggested it!
why(14)
Stop asking!
why(8)
To please the rich Stewie!
표준 코드 골프 규칙이 적용됩니다. 당첨자는 챌린지가 게시 된 날로부터 1 주일 후에 선정됩니다.
/2
작동 하지 않아도 됩니다. 분수 값을 제공합니다. 13
또한 insisted
(14 / 2 = 7 % 4 = 3 = 2 차 주장) 이어야합니다 .
the rich The programmer
이 특정으로 인해 같은 경우로 끝나는 경우 중요합니까 the
?
The
와 To
목록에 있는 단어 는 아마도 귀하의 예와 일치하는 소문자 여야합니다.
why
또는 것WHY
받아 들일 수?