입력으로 곱셈표 인쇄


11

이 과제에서는 입력으로 곱셈 테이블을 인쇄해야합니다. 다음은 몇 가지 예입니다.

Input: 2 

Output: 
0 2  4 6 8  10  12  14  16  18  20

Input: 20

Output: 20 40 60 80 100 120 140 160 180 200

규칙

  1. 바이트 단위의 가장 짧은 코드가 이깁니다.

  2. 이 과제는 코드 골프이며 코드 골프 일반 규칙 ( )을 따릅니다.

  3. 코드에서 숫자를 인쇄 할 수없는 경우 문자를 사용할 수있는 경우 예를 들면 다음과 같습니다.

    입력 : B

    출력 : BDFHJLNPRT

  4. 0 또는 숫자 (예 : 20)에서 시작하도록 선택할 수 있습니다. 공백을 넣을지 말지 선택할 수 있습니다. 문제는 무료입니다. 입력 및 인쇄 구구단을 가져 가면됩니다.

  5. 출력은 주어진 숫자에 대한 시간 테이블의 처음 10 개 멤버를 나열해야합니다. 0 * n을 생략 할 수 있습니다.


9
첫 번째 예제에는 0에서 10까지의 배수가 있고, 두 번째에서 1에서 10까지의 배수가 있습니다.이 중 하나를 선택할 수 있습니까 아니면 오타 중 하나입니까? 또한 출력을 공백으로 분리해야합니까 아니면 다른 목록 형식을 사용할 수 있습니까? (공백 만있는 경우 공간 수는 약간 무작위입니다.)
Martin Ender

0 또는 숫자 (예 : 20)에서 시작하도록 선택할 수 있습니다. 공백을 넣을지 말지 선택할 수 있습니다. 문제는 무료입니다. 입력 및 인쇄 구구단을 가져 가면됩니다.
Rizze

4
PPCG에 오신 것을 환영합니다! 미래에는 더 많은 정보를 추가 할 것이지만, 우리는 이것으로 충분하지 않기 때문에 꽤 단순한 도전을 보게되어 기쁩니다. 좋아 : 테스트 사례에서 우리는 10 개의 숫자 만 출력 해야하는 것처럼 보이지만 이것을 지정하지는 않았습니다. 부정적인 입력을 지원해야합니까? 왜 2와 4 사이에 두 개의 공백이 있습니까? 첫 번째 테스트 사례에서 출력에 0이있는 이유는 무엇입니까 (10이 아닌 11 개의 출력 번호가 됨). 또한 제안 된 도전 과제에
완수

규칙 3에서 출력은 무엇 C입니까? 어때요 Z?
Lynn

1
출력이 정확히 무엇인지, 일반 규칙은 함수가 출력을 STDOUT에 인쇄하지 않고 목록으로 리턴하는 경향이 있습니다.
브래드 길버트 b2gills

답변:



10

C #, 105 96 67 56 바이트

C #에서 람다의 작동 방식을 알고 있으므로 다음은 첫 번째 답변에 대한 업데이트입니다.

n=>{for(int i=0;i++<10;)System.Console.Write(i*n+" ");};

11 바이트를 저장합니다.


첫 번째 게시물, 내가 잘못한 일을 용서해주십시오. 또한 실제로 전에 시도하지 않았으므로 골프 팁을 알려주십시오.

void c(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}

언 골프 드 :

void c(int n)
{
    for (int i = 0; i++ < 10 ; )
    {
        System.Console.Write(i*n+" ");
    }
}

감사합니다 Jonathan Allan, 아직 댓글을 추가 할 수 없습니다. 그리고 Kevin Cruijssen에게 감사합니다. 나는 스 니펫이 허용되었다는 질문이 없으면 항상 전체 프로그램을 포함해야한다고 가정했습니다. 시스템을 제거 할 수 있을까요? 이 경우 콘솔로 인쇄하려면 전화를 걸거나 사용 / 가져 오기가 필요합니까?


1
PPCG에 오신 것을 환영합니다! 당신은 클래스를 제거 할 수 있습니다, 골프 규칙에 의해 주요 기능 만 필요합니다 :)
Jonathan Allan

1
@JonathanAllan 그뿐만 아니라 동일한 규칙에 따라 Main완전히 별도의 방법을 만들 수도 있습니다 . 즉 void f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}, PPCG에 오신 것을 환영합니다!
Kevin Cruijssen


9

젤리 , 3 바이트

⁵R×

그것을 테스트 TryItOnline
또는 처음 256 예, 잘에서도 정렬 TryItOnline

어떻게?

⁵R× - main link takes one argument, n
⁵   - literal 10
 R  - range [1,2,...,10]
  × - multiply by input (implicit vectorization)

젤리를 배우고 싶지만 명령의 절반이 저를 위해 렌더링되지 않으므로 쓸모가 없습니다 : D
Beta Decay

@BetaDecay 대부분의 텍스트를 입력 할 수 없으며 텍스트 편집기 나 cmd 줄에서 렌더링 할 수 없습니다. (-Windows 7 컴퓨터의 Firefox에서는 제대로 렌더링됩니다.
Jonathan Allan

당신과 Emigma가 이겼습니다.
Rizze

@BetaDecay- DejaVu Sans Mono 글꼴 을 다운로드 하고 다시 설치하는 데 도움이 될 수 있습니다. 이제 메모장에서 거의 모든 문자를 볼 수 있습니다. Firefox를 통해 TIO 에서도이 문자를 사용하고 모든 문자를 계속 표시합니다.
Jonathan Allan

정확히 내가 생각한 것, +1.
Outgolfer Erik

8

클로저, 70 80 바이트

이것은 CG에 대한 첫 번째 게시물입니다. 입력이 잘되기를 바랍니다.

70 바이트

(defn -main[& a](println(map #(* %(read-string(first a)))(range 10))))

80 바이트

(defn -main[& a](let[n(read-string(first a))](println(map #(* % n)(range 10)))))

프로그램은 숫자를 stdin 인수로 읽고 결과를 표시합니다.

산출

lein run 10
(0 10 20 30 40 50 60 70 80 90)

5
어서 오십시오! 좋은 첫 대답입니다!
mbomb007


6

펄, 19 바이트

에 +1 포함 -n

STDIN의 입력으로 실행하십시오.

perl -M5.1010 -n table.pl <<< 8

table.pl:

say$_*$`for/$/..10

당신은 아마 의미 -n? 아니면 내가 뭔가를 그리워 했습니까?
Dada

@Dada : 맞습니다. 다른 버전과 함께 사용했습니다. 고정
Ton Hospel

5

하스켈, 16 바이트

(<$>[1..10]).(*)

사용 예 : (<$>[1..10]).(*) $ 4-> [4,8,12,16,20,24,28,32,36,40].

포인트 프리 버전 : f n = map (n*) [1..10].


무엇을 <$>합니까?
Cyoce

@Cyoce : <$>fmap(또는 map리스트와 함께 사용되는) 접두어 버전입니다 . 즉,리스트의 모든 요소에 첫 번째 인자로 주어진 함수를 적용했습니다. func <$> list= fmap func list= map func list.
nimi



4

PHP, 34 바이트

(34 바이트)

for(;$i++<10;)echo$i*$argv[1].' ';

(34 바이트)

for(;++$i%11;)echo$i*$argv[1].' ';

(34 바이트)

while($i++<10)echo$i*$argv[1].' ';

(35 바이트)

for(;$i++<10;)echo' '.$a+=$argv[1];

( 41 40 바이트)

<?=join(' ',range(0,10*$a=$argv[1],$a));

<?=join(' ',range($a=$argv[1],10*$a,$a));

(44 바이트)

foreach(range(1,10)as$i)echo$i*$argv[1].' ';

0에서 시작하면 range()with $step를 사용 하는 것이 더 짧을 수 있습니다 <?=join(' ',range(0,10*$a=$argv[1],$a));.
manatwork

내가 시작했을 때 0부터 시작하는 것을 허용하는 규칙은 설정되지 않았지만, 맞습니다. 나는 이것을 업데이트합니다.
Crypto

4

J, 8 바이트

(i.10)&*

이 중 범위 09포함 ( i.10) 접합 ( &승산) 함수 재치 ( *). 이것은 0에서 시작합니다.

테스트 사례

   k =: (i.10)&*
   k 2
0 2 4 6 8 10 12 14 16 18
   k 10
0 10 20 30 40 50 60 70 80 90
   k"0 i.10
0 0  0  0  0  0  0  0  0  0
0 1  2  3  4  5  6  7  8  9
0 2  4  6  8 10 12 14 16 18
0 3  6  9 12 15 18 21 24 27
0 4  8 12 16 20 24 28 32 36
0 5 10 15 20 25 30 35 40 45
0 6 12 18 24 30 36 42 48 54
0 7 14 21 28 35 42 49 56 63
0 8 16 24 32 40 48 56 64 72
0 9 18 27 36 45 54 63 72 81

3

Zsh, 19 자

echo {0..${1}0..$1}

샘플 실행 :
(이것은 대화식으로 실행하는 방법입니다 zsh scriptfile.sh 20.)

~ % set -- 20          

~ % echo {0..${1}0..$1}
0 20 40 60 80 100 120 140 160 180 200

3

파이썬 3, 52 33 30 바이트

lambda n:list(range(0,11*n,n))

@manatwork 덕분에 3 바이트 절약

출력 형식화는 눈에 띄게 필요하지 않습니다


1
내 대답에서 빌리십시오 :lambda n:" ".join(map(str,range(0,n*11,n)))
manatwork

@manatwork 저는 Python 3을 사용합니다
TuxCrafting

1
Python 3을 사용하지만 Python 2를 사용하여 6 바이트를 절약 할 수 있습니다.lambda n:range(0,11*n,n)
Jonathan Allan

3

마타, 15 29 바이트

args i
mata
A=1..10
B=`i'*A
B

Mata는 Stata 상용 통계 패키지의 매트릭스 프로그래밍 언어입니다. 코드는 행렬을 생성하고 입력 (이 경우 2)을 곱한 다음 새 행렬을 출력합니다.

산출

        1    2    3    4    5    6    7    8    9   10
    +---------------------------------------------------+
  1 |   2    4    6    8   10   12   14   16   18   20  |
    +---------------------------------------------------+

1
입력은 어떻게 되나요? 재사용도 필요합니다.
Jonathan Allan

1
좋아, 입력 접수를 명확히하기 위해 편집했다
f1rstguess


3

Stata, 46 바이트

args i
set obs `i'
gen x=_n
gen y=x*`i'
list y

산출

i = 15의 경우

    +-----+
    |   y |
    |-----|
 1. |  15 |
 2. |  30 |
 3. |  45 |
 4. |  60 |
 5. |  75 |
    |-----|
 6. |  90 |
 7. | 105 |
 8. | 120 |
 9. | 135 |
 10.| 150 |
    |-----|
 11.| 165 |
 12.| 180 |
 13.| 195 |
 14.| 210 |
 15.| 225 |

여기에 사용할 수있는 몇 가지 축약 형이 있습니다 : obs의 경우 ob, gen의 경우 g, 목록의 경우 l. 또한 두 변수를 사용하는 대신 x를 _n *`i '로 지정할 수 있습니까? 나는 STATA에서 전에 args를 본 적이 없었습니다. 새로운 것을 보여 주셔서 감사합니다!
bmarks

3

체다 , 20 바이트

n->(|>11).map(n&(*))

예, 기능적으로는 \ o /

나는 이것이 설명이 필요하다고 생각하지 않지만 당신이 나에게 하나를 추가하고 싶다면 :)


나는 체다를 배워야한다. 그리고 무엇을 n&(*)합니까? 나는 (*)하스켈이라는 의미와 같은 것을 의미 한다고 가정 하지만 &그 맥락에서 무엇을합니까?
Cyoce

그것의 @Cyoce 결합
Downgoat

3

자바 7, 61 57 바이트

void c(int n){for(int i=0;i++<10;)System.out.print(i*n);}

언 골프 및 테스트 사례 :

여기에서 시도하십시오.

class M{
  static void c(int n){
    for(int i = 0; i++ < 10; ){
      System.out.print(i*n);
    }
  }

  public static void main(String[] a){
    c(2);
    System.out.println();
    c(20);
  }
}

산출:

2468101214161820
20406080100120140160180200

공백은 선택 사항입니다. System.out.print (i * n); 4 바이트를 절약 할 것입니다
CameronD17

@ CameronD17 아,이 대답을 한 후에 그 규칙이 추가되었지만 언급 해 주셔서 감사합니다. 나는 그것을 제거했다.
Kevin Cruijssen

3

자바 스크립트 (ES6), 33 31 바이트

f=(x,i=11)=>--i&&f(x,i)+" "+x*i

재귀 솔루션입니다.



3

스칼라, 24 바이트

(n:Int)=>0 to 10 map(n*)

설명:

(n:Int)=> //define an anonymous function
  0 to 10 //create a range from 0 to 10
  map(n*) //multiply each element by the input


2

brainf *** , 84 바이트

,[>+>++>+++>++++>+++++>++++++>+++++++>++++++++>+++++++++>++++++++++<<<<<<<<<<-]>[.>]

입력을 단일 바이트로 예상하고 (BF는 최대 255 개의 숫자에서만 작동 할 수 있으므로) 단일 바이트로 결과를 리턴합니다. 일부 값은 ASCII처럼 보이지만 그렇게 취급해서는 안됩니다. 리턴 된 바이트의 10 진수 표현을보십시오.

온라인으로 사용해보십시오!


>, [> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++를 수행하여 5 바이트를 절약 할 수 있습니다. ++++> +++++++++> ++++++++++ [<]>-]> [.>]
Jeff

@Jeff 불행히도 바이트가 오버플로되어 0으로 재설정되기 때문에 25보다 큰 입력을 중단합니다. 오버플 0로는에 일치 [<]하여 전체 프로세스 루프를 무한대로 만듭니다.
Steven H.

맞지만 바이트가 넘치면 어쨌든 코드에서 잘못된 출력이 발생합니까?
Jeff

1
@Jeff 그것들은 올바른 출력이고, 단지 모드 255에서 작동하고 있습니다.
Steven H.

2

자바 스크립트, 42 바이트

function f(a){for(i=0;i<11;i++)alert(i*a)}

JS를 잘 모르겠습니다. for의 테스트 부분으로 증분을 이동할 수 있습니까?
Jonathan Allan

편집했습니다. 이제 괜찮아.
Rizze

이제 alert ()로 경고합니다.
Rizze

경고없이 알림 : 여기 -다시 가져 와서 다시로드하려면 "시도"가 아니라 "실행"을 클릭해야합니다.
Jonathan Allan

1
@JonathanAllan 무엇?
Rizze


2

PowerShell v2 +, 23 바이트

param($n)1..10|%{$_*$n}

명령 행 인수를 통해 입력을 가져 와서 범위 110반복하여 각 루프가 해당 번호 *$n를 파이프 라인에 배치합니다 . Write-Output프로그램 실행이 끝날 때 암시 적으로 출력 하면 줄 바꿈으로 구분 된 값이 생성됩니다.

PS C:\Tools\Scripts\golfing> .\multiplication-table.ps1 2
2
4
6
8
10
12
14
16
18
20

PS C:\Tools\Scripts\golfing> .\multiplication-table.ps1 20
20
40
60
80
100
120
140
160
180
200

2

C89, 44 바이트

k;main(n){for(k=n*11;k-=n;)printf("%d ",k);}

언 골프 드 :

k;
main(n)
{
    for (k=n*11 ; k-=n ;)
        printf("%d ", k);
}

컴파일 및 실행 (입력 4)

gcc -ansi main.c && ./a.out 2 3 4

산출

40 36 32 28 24 20 16 12 8 4 

그것을 테스트

Demo



2

자바 스크립트 (ES6), 34 31 바이트

a=>{for(i=0;i<11;)alert(++i*a)}
(a)=>{for(i=0;i<11;++i)alert(i*a)}

그리즐리 덕분에 3 바이트를 절약했습니다.


적어도에 괄호가 필요하지 않지만 a의 위치에 대해 창의적 일 수도 있습니다 ++.

2

Cubix , 24 바이트

;;..I1.N-?W.;;)W@/So..*O

Cubix는 2 차원 스택 기반 esolang입니다. Cubix는 소스 코드가 큐브 외부에 둘러싸여 있다는 점에서 다른 2D 언어와 다릅니다.

온라인으로 테스트하십시오! 참고 : 코드를 복사하여 붙여 넣어야하며 반복 사이에 50ms의 지연이 있습니다.

설명

인터프리터가하는 첫 번째 일은 코드가 들어갈 가장 작은 큐브를 알아내는 것입니다. 이 경우 모서리 길이는 1입니다. 그런 다음 .6 개의면이 모두 채워질 때까지 코드에 op-op가 채워집니다 . 처리하기 전에 공백이 제거되므로이 코드는 위와 동일합니다.

    ; ;
    . .
I 1 . N - ? W .
; ; ) W @ / S o
    . .
    * O

다음은 새로운 스택 옵션을 사용하는 약간 더 짧은 것입니다I.0.WrN;-!@vrW>r)*O;o
MickyT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.