- ベストアンサー
数式について…
こんにちわ(^^)。えっと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 … のようになる数式わかりますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
x = x - 1 - (x = 1) * 5 今はこんな書き方しないほうがいいのかな・・・ もう一つ。 x = 5 - (6 - x) mod 5
その他の回答 (2)
- neKo_deux
- ベストアンサー率44% (5541/12319)
> 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つとしてこういう方法もありますよと言う程度に読んでください。 こういうのは、暗記とかするものでは無いと思いますし。
お礼
ありがとうございます。いろいろ数式はあるんですね(^^) 長いコードになってしまいそうなので、 If文を使用しなくても出来そうなところはやろうと思いまして…。(^^> ありがとうございました。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 ベタでかっこ悪いですが。 IntCnt = IIf(IntCnt = 1, 5, IntCnt - 1) ただし、必ずIntCntの初期値は1~5にして下さい。
お礼
早速のかいとうありがとうございます。(^^)参考にさせていただきます。
お礼
>x = 5 - (6 - x) mod 5 使用させていただきます(> <)/ ありがとうございます!!