投稿日 | : 2004/09/07(Tue) 16:05 |
投稿者 | : kazuやん |
Eメール | : |
URL | : |
タイトル | : Re: pMin(i,j,k) |
> 先ほどから30分、下記のような関数を考えているのですがどうも美しく出来ません。
> 皆さんも、腕に覚えのある方は、美しいアルゴリズムを考えてみませんか?
> (と、人にやらせてみる)処理効率は問いません。ステップ数の少ないほうが美しいかな。
>
> 関数名:pMin
> 引数:i,j,k (いずれも、0または正整数)
> 戻り値:i,j,kのうち正で一番小さい値。但し、i,j,kのすべてが0ならば0.
果たして美しいかは微妙ですが、こんな感じでしょうかね^^
'**********************************************************
'* pMin :引数の中で最小の値を返す。但し3つとも0なら0を返す
'* i,j,k :いずれも、0または正整数
'* 戻り値 :最小の値、又は0
'**********************************************************
Function pMin(i As Integer, j As Integer, k As Integer) As Integer
Dim min As Integer '最小値
'全て0の場合
If (i Or j Or k) = 0 Then
pMin = 0
Else
'最小値初期設定
min = i
If (min > j) Then min = j
If (min > k) Then min = k
pMin = min
End If
End Function