도전:
정수 입력을 사용하여 아래에 지정된 새 프로그램 / 기능을 출력하는 프로그램 또는 기능을 작성하십시오.
입력:
정수 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:253 단계에 있더라도 계속해서 다음 프로그램을 출력합니다 BOOM!(출력 출력 프로그램이 첫 번째 출력 프로그램보다 시작 시간이 길기 때문에). .
도전 규칙 :
- 기본 퀴닝 규칙이 적용됩니다.
- 최소한
n몇 초가 지났어야합니다. 입력이 경우에 따라서60시간을 시작하는 것은이었다12:00:00에서,12:01:00그것은 것입니다 여전히 출력 V2 프로그램 만에12:01:01이 출력 것이다BOOM!. - 출력 프로그램은 입력을받지 않습니다 ( 더 짧은 경우 비어있는 사용하지 않는 매개 변수 제외 ). 시작 시간은 다음 프로그램에 '하드 코딩 된'값으로 제공되어야합니다. 따라서 출력 프로그램의 출력이 이전 (대부분의 언어)의 출력과 정확히 같지 않습니다.
- 기본 프로그램 / 기능의 크기 만 바이트 단위로 계산됩니다.
- 언어가 지원하는 경우 프로그램 또는 함수를 문자열 (또는 바이트 / 문자 배열 / 목록과 같은 비슷한 형식) 또는 함수로 출력 할 수 있습니다 (확실하지 않은지 물어보십시오).