dポイントプレゼントキャンペーン実施中!

こんにちわ(^^)。えっとVB開発なんですけれども
数式が分からないもので、質問させていただきます。

例えば、
1⇒2⇒3⇒4⇒5⇒1⇒2 …
上図のようにある一定の数値をぐるぐる回す数式というのが、VBでいう
IntCnt = (IntCnt Mod 数字の個数) + 1
(例:IntCnt = 1 のとき、答え IntCnt = 2
   IntCnt = 5 のとき、答え IntCnt = 1)

になるのはわかっているのですが、その逆がわからなくて困っています…(T T)。
つまり
5⇒4⇒3⇒2⇒1⇒5⇒4 …
のようになる数式わかりますか?

A 回答 (3件)

x = x - 1 - (x = 1) * 5


今はこんな書き方しないほうがいいのかな・・・

もう一つ。
x = 5 - (6 - x) mod 5
    • good
    • 0
この回答へのお礼

>x = 5 - (6 - x) mod 5
使用させていただきます(> <)/
ありがとうございます!!

お礼日時:2004/02/23 11:59

> 5⇒4⇒3⇒2⇒1⇒5⇒4 …



無理に1行で書く必要が無ければ、以下のように場合分けしてはいかがでしょう?

If IntCnt = 1 Then
 ' 1⇒5
 IntCnt = 5
Else
 ' それ以外は1減算
 IntCnt = IntCnt - 1
EndIf

--
無理矢理計算させると、

IntCnt = ((IntCnt + 3) Mod 5) + 1

のような式でもOKの気がしますが、これが正解というわけでなく、考え方の1つとしてこういう方法もありますよと言う程度に読んでください。
こういうのは、暗記とかするものでは無いと思いますし。
    • good
    • 0
この回答へのお礼

ありがとうございます。いろいろ数式はあるんですね(^^)
長いコードになってしまいそうなので、
If文を使用しなくても出来そうなところはやろうと思いまして…。(^^>
ありがとうございました。

お礼日時:2004/02/23 12:02

こんにちは。

maruru01です。

ベタでかっこ悪いですが。

IntCnt = IIf(IntCnt = 1, 5, IntCnt - 1)

ただし、必ずIntCntの初期値は1~5にして下さい。
    • good
    • 0
この回答へのお礼

早速のかいとうありがとうございます。(^^)参考にさせていただきます。

お礼日時:2004/02/23 11:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!