도전:
정수 입력을 사용하여 아래에 지정된 새 프로그램 / 기능을 출력하는 프로그램 또는 기능을 작성하십시오.
입력:
정수 n
: 시한 폭탄이 폭발하기 전의 시간 (초)입니다.
산출:
n
입력 시간이 초 단위 인 원래 프로그램 은 다음을 수행하는 새로운 프로그램 / 기능을 출력합니다.
- 했습니다
n
이전 프로그램이 실행 된 이후 초 통과? 인쇄BOOM!
- 그렇지 않으면 : 자체적으로 실행될 때 타이머를 다시
n
초로 재설정하는 프로그램 / 기능을 인쇄 하십시오 (첫 번째 출력 된 프로그램 / 기능과 동일하게 작동).
참고 : 시작 시간이 변경 되었기 때문에 첫 번째 출력 된 프로그램 / 기능 (대부분의 언어에서)과 정확히 동일하지 않습니다 (아래 설명 예 참조).
의사 코드 예 :
원래 프로그램이 ABC
있고 입력이 60
초 라고 가정 해 봅시다 .
ABC
& 60
출력 DEF(60)
.
DEF(60)
60 초 내에 실행 되면 이 출력됩니다 (DEF_G(60)
와 정확히 동일DEF(60)
하지만 새로운 시작 시간 사용).- 경우
DEF(60)
60 초 동안 실행, 그것은 출력 것이다BOOM!
.
'시작 시간'의 의미를 명확히하는 예 :
- 입력
60
초 수의 기본 프로그램 은에서 실행됩니다12:00:00
. 시작 시간이 1 인 첫 번째 출력 프로그램을 출력합니다12:00:00
. - 시작 시간이 첫 번째 출력 프로그램
12:00:00
은에서 실행됩니다12:00:45
. 시작 시간이 인 두 번째 출력 프로그램을 출력합니다12:00:45
. - 시작 시간이이 세 번째 출력 프로그램
12:00:45
이에서 실행됩니다12:01:25
. 시작 시간이 4 번째 인 4 번째 출력 프로그램을 출력합니다12:01:25
. - 시작 시간이있는이 네 번째 출력 프로그램
12:01:25
은에서 실행됩니다12:05:00
. 출력BOOM!
됩니다.
첫 번째 출력은 BOOM!
이후 12:01:00
에 인쇄되는 방법에 유의하십시오 . 그러나 출력 프로그램은 12:01:25
3 단계에 있더라도 계속해서 다음 프로그램을 출력합니다 BOOM!
(출력 출력 프로그램이 첫 번째 출력 프로그램보다 시작 시간이 길기 때문에). .
도전 규칙 :
- 기본 퀴닝 규칙이 적용됩니다.
- 최소한
n
몇 초가 지났어야합니다. 입력이 경우에 따라서60
시간을 시작하는 것은이었다12:00:00
에서,12:01:00
그것은 것입니다 여전히 출력 V2 프로그램 만에12:01:01
이 출력 것이다BOOM!
. - 출력 프로그램은 입력을받지 않습니다 ( 더 짧은 경우 비어있는 사용하지 않는 매개 변수 제외 ). 시작 시간은 다음 프로그램에 '하드 코딩 된'값으로 제공되어야합니다. 따라서 출력 프로그램의 출력이 이전 (대부분의 언어)의 출력과 정확히 같지 않습니다.
- 기본 프로그램 / 기능의 크기 만 바이트 단위로 계산됩니다.
- 언어가 지원하는 경우 프로그램 또는 함수를 문자열 (또는 바이트 / 문자 배열 / 목록과 같은 비슷한 형식) 또는 함수로 출력 할 수 있습니다 (확실하지 않은지 물어보십시오).