다른 기지에서 6 * 9를 계산


16

다음 결과를 출력합니다 (2에서 36까지 밑에서 6 * 9를 계산 한 결과). 글자가 대문자인지, 곱하기 자체가 모든 줄에 출력되는지 확인하십시오.

6 * 9 = 110110
6 * 9 = 2000
6 * 9 = 312
6 * 9 = 204
6 * 9 = 130
6 * 9 = 105
6 * 9 = 66
6 * 9 = 60
6 * 9 = 54
6 * 9 = 4A
6 * 9 = 46
6 * 9 = 42
6 * 9 = 3C
6 * 9 = 39
6 * 9 = 36
6 * 9 = 33
6 * 9 = 30
6 * 9 = 2G
6 * 9 = 2E
6 * 9 = 2C
6 * 9 = 2A
6 * 9 = 28
6 * 9 = 26
6 * 9 = 24
6 * 9 = 22
6 * 9 = 20
6 * 9 = 1Q
6 * 9 = 1P
6 * 9 = 1O
6 * 9 = 1N
6 * 9 = 1M
6 * 9 = 1L
6 * 9 = 1K
6 * 9 = 1J
6 * 9 = 1I

가장 짧은 코드가 승리합니다.


1
@Howard : 수정되었습니다. 2에서 10으로 변경하는 것을 고려하고 있었지만 결과에서 다른 것을 수정하는 동안이 편집을 잊어 버렸으므로 실수로 잘못했습니다.
Konrad Borowski

2
Calculate 6*9 in different bases나는 왜 그 말이 왜 6*9그렇게 간단하지 54않습니까? 아마도 원래 의도 의미는 것이 었습니다 69소수로하지만 서로 다른 기지에서 항상 해석해야 하는가? 즉, 문이 더 논리적 만들 것, 그리고 문제는 더 흥미로운 (하지만 우리는 기본 10에서 36로 시작해야합니다)
leonbloy

2
@leonbloy : 69한 자리 숫자입니다. 이는 해당 자릿수가 유효한 모든 기준에서 동일 함을 의미합니다.
Ilmari 카로 넨

1
@IlmariKaronen : 맞습니다 만, 6 * 9 = 110110이해가되지 않습니다 ...
Dennis

3
이것은 Douglas Adams의 Hitchhiker 's Guide to the Galaxy 시리즈에 대한 참조입니다. 이 시리즈에서 인생의 궁극적 인 질문, 우주, 그리고 모든 것에 대한 답은 "42"입니다. 나중에, 인생의 궁극적 인 질문, 우주, 그리고 모든 것이 "13에 곱하면 6에 9를 곱하면 무엇을 얻습니까?"라는 것이 밝혀졌습니다. 참고 : Douglas Adams는 이것이 의도하지 않은 것이라고 말했습니다. "저는 base-13에 농담을 쓰지 않습니다" .
jimbob 박사

답변:





6

자바 스크립트, 57 55 바이트

for(i=2;++i<37;)console.log('6 * 9 = '+54..toString(i))

와 함께 49로 단축 할 수 alert는 있지만 누구에게도 제출하고 싶지 않습니다 ...


3
출력은 대문자 여야하며 (쓰기 위해 ) (54)로 바꿀 수 있습니다 . 54.54..toString
Konrad Borowski

2
for(i=1;++i<37;)또한 문자를 저장합니다.
grc

37을 무시할 수 있습니까? 오류가 발생하고 중지됩니다
l4m2

4

루비 (47)

2.upto(36){|t|puts"9 * 6 = "+54.to_s(t).upcase}

글쎄, GolfScript 솔루션이 더 낫다는 것을 알고 있지만 적어도 이것은 난해하지 않습니다 ...


2.step{|t|puts"9 * 6 = "+54.to_s(t).upcase}몇 바이트를 절약합니다. 오류와 함께 종료되지만 ok : D 입니다.
m-chrzan

4

파이썬, 89

B=lambda x:x*'.'and B(x/b)+chr(x%b+7*(x%b>9)+48)
b=2
while b<37:print'6 * 9 =',B(54);b+=1

훌륭한. 내가 :) 비해 총 파이썬 멍청한 놈이야 것을 확실히 눈에 띄는
요아킴 이삭손

@JoachimIsaksson 감사합니다 ... 배울 것이 더 많습니다.
boothby

대신 while 루프를 사용하여 한 문자를 제거 할 수 있습니다. b=2<linebreak> while b<37:print'6 * 9 =',B(54);b+=1(* nix 줄 바꿈에 단일 문자 가정)
Bob

@Bob while 루프를 시도 할 때마다 너무 비쌉니다. 그런 다음에 다음에 시도하는 것을 잊습니다. ;) 감사!
부스

3

파이썬 2.7 ( 124114 )

편집 : 아래 @boothby의 의견 덕분에 보풀을 줄입니다.

필자는 파이썬이 기본 변환을 수행 할 기본 제공 기능이 없으므로 코드에서 수행해야한다는 점을 고려하여 잘하고 있다고 생각합니다.

for b in range(2,37):print'6 * 9 = '+''.join(chr((54/b**y%b>9)*7+48+54/b**y%b)for y in range(4,-1,-1)).lstrip('0')

나는 이것을 지속적으로 상기시켜야한다 : print'\n'.join(...for x in y)보다 길다 for x in y:print....
boothby

@boothby 감사합니다 :) 귀하의 제안으로 업데이트
요아킴 이삭손


1

매스 매 티카 40

경합이 아님 (소문자 사용) :

Print["6*9 = ",54~BaseForm~#]&/@2~Range~36

base output


1

줄리아, 61

b = 2 : 36; @printf ( "6 * 9 = % s \ n", 대문자 (base (b, 54))); end

@printf와 printf 매크로를 사용하는 것을 기억하는 것 외에는 고통이 없습니다.

수입 기지; 필요하지 않은 ...


for b=2:36;println("6 * 9 = $(uppercase(base(b,54)))");end또한 좋은 ...
cormullion

1

Math :: BaseCnv 모듈을 사용해야했습니다

use진술 없이 35 문자 :

map{say"6 * 9 = ",cnv(54,$_)}2..36

use진술 과 함께 54 문자 :

use Math::BaseCnv;
map{say"6 * 9 = ",cnv(54,$_)}2..36

이 점수를 어떻게 얻었는지 잘 모르므로 둘 다 포함됩니다.

맵 차단 목록 구조가 사용되었습니다. 목록은 요청 된 2-36의 범위입니다. 고기가 cnv($NUMBER, $BASE)기능 중이며 맵은 암시 적 루프입니다.


1
use계산서를 세십시오 . 첫 번째는 내 펄에서 작동하지 않습니다.
boothby

1

제이 - 78 70

'6 * 9 = ',"1>;/(a.#~48 10 7 26 165#0 1 0 1 0){~<&.>(2+i.35)#.inv&.>54

하스켈-137

let s=['0'..'9']++['A'..'Z'];t _(0,r)=[s!!r];t b(q,r)=(t b$b q)++[s!!r]in mapM_(putStrLn.("6 * 9 = "++).(\b->t b$b 54).flip divMod)[2..36]

1

CoffeeScript 71

alert ("6 * 9 = "+59.toString(x).toUpperCase()for x in[2..36]).join "\n"

링크


1

C ( 166151 )

불필요한 문자를 제거하고 선언을 변경했습니다. 인수없이 프로그램을 실행한다고 가정합니다.

p[7],i,l,v,r;main(b){for(r=2;r<37;r++){b++;printf("6 * 9 = ");v=54;while(v>0)l=v%b,p[i++]=l>9?l+55:l+48,v/=b;while(i^0)printf("%c",p[--i]);puts("");}}

1

클로저, 75

(for[i(range 2 37)](println"6 * 9 ="(.toUpperCase(Integer/toString 54 i))))


1

파이썬 3, 83 바이트

import numpy;print('\n'.join('6 * 9 = '+numpy.base_repr(54,i)for i in range(2,37)))

1
바이트를 저장하는 '\n'.join('6 * 9 = '+numpy.base_repr(54,i)for i in range(2,37))대신 사용할 수 있습니다 *['6 * 9 = '+numpy.base_repr(54,i)for i in range(2,37)],sep='\n'.
Post Rock Garf Hunter

표준 라이브러리가 아니기 때문에 "Python 3 with Numpy"를 지정해야합니다.
FlipTack

1

다트, 75 바이트

for(int x=2;x<37;x++)print("6 * 9 = ${54.toRadixString(x).toUpperCase()}");

Dart는 stdlib에 관해서는 조금 장황하지만, 적어도 ... 당신은 그것을 읽을 수 있습니다 : P



0

일반적인 Lisp : 56 자

(do((b 2(1+ b)))((> b 36))(format t"6 * 9 = ~vr~%"b 54))

0

세이지, 48 :

부끄러운 현인은 소문자로 인쇄 ... 나는 하워드 이상 하나입니다. 아니면 데이빗 카러와 잘못 연결되어 있다고 생각합니다.

for i in[2..36]:print'6 * 9 =',54.str(i).upper()



0

SpecBAS-48 바이트

1 FOR i=2 TO 36: ?"6 * 9 = ";BASE$(54,i): NEXT i

SpecBAS는 실제로 변경에 대해 매우 경쟁력이 있습니다 :-)


0

8 , 65 62 바이트

이것은 완전한 프로그램입니다. 실행 후 종료

( "6 * 9 = " . #54 swap base drop >s s:uc . cr ) 2 36 loop bye 

설명

( 
   "6 * 9 = " .   \ Print the first part of the formula
    #54 swap base \ Enter into the base provided by loop index and                
                  \ convert 54 (which is always expressed in base 10)
    drop          \ Get rid of previous base
    >s s:uc       \ Convert number into an upper case string
    . cr          \ Print result and newline
) 2 36 loop       \ Provide base from 2 to 36
bye               \ Quit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.