2016-09-10 6 views
-3

일부 Ruby 문제를 해결하려고 노력 중이며 일부 저수준에 큰 문제가 있습니다. ?) 자릿수 변환."az", "AZ", ".", " n"및 ""만 사용하여 Ruby 프로그램을 작성하는 방법

그냥 당신이, 쓰기 프로그램에 필요로하는 화면의 문장 예 :에 인쇄

는 "존 도우는 2017 년 태어났다!"

것을 상상

만 다음과 같은 문자를 사용 [A-ZA-Z합니다. \ n] 사실

(& 큰 문자, 점, 공간 및 새로운 라인 작은), 나는 아무 생각이 어떻게해야 대답을 찾기 시작합니다.

pack/unpack 방법을 사용하고 있습니까? 또는 찾을 수없는 trival 솔루션이 있습니까?

"프로그램 쓰기"가 굵게 표시되는 이유가 있습니다. 질문 : Ruby에서 프로그램의 가장 단순한 정의는 무엇입니까?

+1

이것은 http://codegolf.stackexchange.com에서 좋은 작업이 될 것입니다. – knut

답변

2

글자, 도트, 공백 및 개행 문자 만 사용하여 문자열을 인쇄하는 프로그램을 작성하는 것은 처음에는 불가능한 것처럼 보일 수 있지만 사실 그리 어렵지 않습니다.

소문자와 대문자는 Kernel 방법 (printputs 등)뿐만 아니라 nil, falsetrue 같은 keywords를 호출 할 수 있습니다. 점을 사용하면 명시 적 수신자로 메소드를 호출 할 수 있습니다. Space를 사용하면 메서드에 인수를 전달할 수 있습니다. 뉴 라인은 명령을 분리합니다.

는의는 "A"를 얻으려고하자

false       #=> false 
false.inspect     #=> "false" 
false.inspect.chars    #=> ["f", "a", "l", "s", "e"] 
false.inspect.chars.rotate  #=> ["a", "l", "s", "e", "f"] 
false.inspect.chars.rotate.first #=> "a" 

지금 인쇄 "ABC"를 할 수 있습니다 :

print false.inspect.chars.rotate.first 
print false.inspect.chars.rotate.first.succ 
print false.inspect.chars.rotate.first.succ.succ 
puts 

출력 :

abc 

당신은 아이디어를 얻을.

그리고 비슷한 방법으로 공백, 구두점 및 숫자를 인쇄 할 수도 있습니다. 하지만 나는 너에게 맡긴다. 사용 가능한 방법을보고 창조적으로 생각하십시오.

공백을 사용하지 않고 문자열을 인쇄하는 방법을 알아 내려는 추가 점은 단지 [a-zA-Z.\n]입니다.

+0

대단히 감사합니다. 귀하의 충고에 따라 몇 분 안에 문제를 해결할 수있었습니다. – tchorzewski1991

+0

@ coder1991 궁금합니다. 어떻게 2017을 인쇄 했습니까? – Stefan