| prog2.jl |
# prog2a.jl --- a の n 乗を計算する。
function prog2a(a,n)
p=1 # p=one(a) とすべき?
for i=1:n
p *= a
end
p
end
|
| prog2a.jl |
# prog2a.jl --- a の n 乗を計算する。
function prog2a(a,n)
p=1 # p=one(a) とすべき?
for i=1:n
p *= a
end
p
end
|
sizeof(1) とか sizeof(Int) は 8 を返す。
x=1 としてから x=2x;bitstring(x) としてみよう。
が負の場合にも対応するとか、
が整数かそうでないかで処理を分けたりする?
ループ回すのもちょっと気が利かないし。
| prog2b.jl |
# prog2b.jl ---a の n 乗を計算する。 (お遊びモード)
function prog2b(a,n::Int)
if n >= 0
positivefact(a,n)
elseif isa(a,Int)
one(a) // positivefact(a, -n)
else
one(a) / positivefact(a, -n)
end
end
function positivefact(a,n::Int)
if n == 0
one(a) # 0^0 チェックをすべきか? undefined とか返してやる?
elseif n % 2 == 0
prog2b(a*a, div(n,2))
else
a * prog2b(a*a, div(n,2))
end
end
|