초등학교 때 배우는 두 정수의 곱셈 계산표를 만들어 주는 Julia 소스이다.
Python 언어에서는 // 가 정수 나눗셈 연산자이지만, Julia 언어에서는 // 가 분수를 표현할 때 쓰는 분자와 분모의 구분자이다. Julia 언어에서는 div(피제수, 제수) 가 정수 나눗셈에 쓰이는 함수이다. 즉
y = int64(floor(x / 10))
y = div(x, 10)
는 둘 다 정수 x 를 정수 10 으로 나눈 몫을 변수 y 에 저장하는 Julia 구문이다.
##
## Print a multiplication table.
##
## Execute: julia makeMultTable.jl 230 5100
##
## Date: 2013. 3. 5.
## Author: pkim __AT__ scripts ((DOT)) pe ((DOT)) kr
function printUsing()
println("Using: julia makeMultTable.jl [number1] [number2]")
println("Print a multiplication table for the given two integers.")
end
function printMultTable(x, y)
nx = x
if nx < 0
nx = -nx
end
ny = y
if ny < 0
ny = -ny
end
ntail1 = 0
ntail2 = 0
while nx % 10 == 0
# nx = int64(floor(nx / 10))
nx = div(nx, 10)
ntail1 = ntail1 + 1
end
while ny % 10 == 0
# ny = int64(floor(ny / 10))
ny = div(ny, 10)
ntail2 = ntail2 + 1
end
z = nx * ny
strZ = "$z"
strX = "$nx"
strY = "$ny"
n = length(strY)
zeros = "0000000000000000000000000000000000000000"
whites = " "
bars = "----------------------------------------"
loffset = " "
line4 = loffset * strZ
line1 = loffset * whites[1: length(strZ) - length(strX)] * strX
line2 = " x ) " * whites[1: length(strZ) - length(strY)] * strY
line3 = " --" * bars[1: length(strZ)]
println(line1 * zeros[1: ntail1])
println(line2 * zeros[1: ntail2])
println(line3)
# println("strY = $strY")
if length(strY) > 1
for i = 0:length(strY)-1
y1 = int64(strY[length(strY) - i : length(strY) - i])
if y1 != 0
strT = string(nx * y1)
println(loffset * whites[1: length(strZ) - length(strT) - i] * strT)
end
end
println(line3)
end
println(line4 * zeros[1: ntail1] * zeros[1: ntail2])
end
if length(ARGS) >= 2
x = int64(ARGS[1])
y = int64(ARGS[2])
println()
printMultTable(x, y)
else
printUsing()
end
실행> julia makeMultTable.jl 230 5100
결과>
230 x ) 5100 ------ 23 115 ------ 1173000
'프로그래밍 > Julia' 카테고리의 다른 글
조립제법(Horner의 방법) 예제 2 for Julia (0) | 2013.03.07 |
---|---|
숫자 맞추기 게임 with Julia (0) | 2013.03.06 |
문자열 거꾸로 하기 with Julia (0) | 2013.03.05 |
손으로 만드는 나눗셈 계산표 with Julia (0) | 2013.03.05 |
삼각형 출력 예제를 통한 여러 가지 소스 비교 with Julia (0) | 2013.03.05 |