A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
では、別解
const MAX_X as integer=3 'constで最大値を定義する。
x=1
While True
x = if(x<=1,MAX_X,x-1)
End While
ちなみに、コンピュータでの割り算って、四則演算では一番計算に時間がかかる演算です。
見た目には1つの式で書くのがいいように見えますが、実際には加減算とif文の方が効率がいいこともあります。
No.5
- 回答日時:
こんにちは
No4様が、せっかく考え方を示してくれているのですから
>x0は別変数ということですかね?
>今のところ別変数やifなどの利用は考えておりません
少しはご自分で考えましょう。
4 - ((x mod 3) + 1)
でよいのだから、結局
3 - (x mod 3)
にたどり着くはずなのですけれど・・・
…で、この式をよく見てみると、実は、No1様が一番最初に示してくれている式です。
これに対して、
>だと、2→1→2→1→・・・
として切り捨ててしまっていますね。
(この回答が、仮に望み通りでなくても、十分なヒントになるはずなのだけれど)
質問者様のコメントから推測すると、xの初期値を1としてるっぽいけれど、それでも「2→1→2→1→・・・」になることはありません。
「2,1,3,2,1・・・」と初期値を変えた分だけスタートがずれるだけです。
(初期値を0にすれば、ちゃんと、「3,2,1,3,2,1,3,2,1・・・」になります)
「初期値を変えた分」というのは、ご質問文に、
>1→2→3→1・・・
>とループさせるには、(x mod 3)+1とすればよい
とあるけれど、これはxの初期値を0としなければ、1,2,3・・・とはならないので、
(初期値が1の場合は、「2,3,1,2,3,1・・・」となる)
質問文を読んだ回答者は、(直接書いてはありませんが)「xの初期値を0」と想定して回答しているのです。
それを勝手に1からに変えるのはご自由ですけれど、変えた分の調整が必要になります。
(回答者には、「初期値を変えた」という情報はないので、当然配慮はしません)
初期値を変えても、簡単な調節で対応できることに気付きませんでしょうか?
ご質問の場合を例にすれば、初期値が1なら
3 - (x - 1 mod 3)
もちろん、初期値が0なら
3 - (x mod 3)
のまま。
同様に、もし初期値が2でも、3や-1とかであっても、整数であれば簡単に調整が可能です。
(実数であったとしても、整数化すれば対応できます)
別の発想として、変数をインクリメントする代わりにデクリメントで対応するという考えもあるでしょう。
例えば、求めたい数列が、「3,3,2,2,1,1,3,3,2,2,1,1・・・」のような場合であったとしても、考え方の応用ができさえすれば対応は可能なはずですけれど。
回答ありがとうございます。
こちらの書き方が悪かったのですが、
while true
x = x の式
wend
として実行をしたときに、ある数値nから1までの数値を循環するようにしたかったのです。(実際には無限ループにはしませんが)
提示していただいた例は、for文における「y = xの式」を想定しての回答だと思われますが、「 x = xの式」では残念ながら循環の結果は得られませんでした。
>もちろん、初期値が0なら
3 - (x mod 3)
x = 0
while true
x = 3 - ( x mod 3 ) ' → 3 , 3 , 3 , 3 , ・・・・・
wend
>3 - (x - 1 mod 3)
3 - ( ( x - 1 ) mod 3 ) だと思われますが、
x= 1
while true
x = 3 - ( (x-1) mod 3 ) ' → 2 , 1 , 2 ,1 ・・・・
wend
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- Microsoft ASP プログラミング関係で質問です。 3 2022/10/11 16:06
- その他(プログラミング・Web制作) プログラムはif文とforループが書ければなんとかなるので楽勝?? 6 2022/12/26 10:24
- 工学 GB積について 1 2022/07/04 22:38
- その他(プログラミング・Web制作) forループは何故、forなのですか? 5 2022/11/04 22:38
- Excel(エクセル) エクセルの当番表を作っていますが教えてください 4 2023/01/06 12:12
- Windows 10 windows10のクリーンインストールが完了出来ない 2 2022/06/04 13:33
- Java Java 南京錠 2 2023/02/04 11:46
- その他(プログラミング・Web制作) 機械語に詳しい方 2 2022/07/10 12:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで3秒だけ時間を止めたい
-
画面を強制的に再描画させる方法
-
VBAでの一時停止と再開の方法
-
Excel vba でコンボボックスの...
-
Application->Run();の機能につ...
-
VBA for i=1 to lastrow
-
CSVファイルの特定の行だけを読...
-
ダイアログのテキストにマウス...
-
エクセルの当番表を作っていま...
-
C言語でファクト関数を使わずに...
-
xmplayの使い方
-
素数であるかどうかを判定する...
-
XMLファイルをDataSetに読込む...
-
VBA Boxが空白の場合のメッセー...
-
アクティブセルから、A列最終行...
-
JQueryのスライドショーを停止...
-
アルゴリズムでのループの終了...
-
vbscriptでIE自動入力(途中で...
-
再帰関数のインライン展開
-
ガレージバンド のサンプリング...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAでの一時停止と再開の方法
-
ループ7回目の悪役令嬢は、元敵...
-
UWSCの終了の仕方
-
Escキーを押すと、中断する時と...
-
エクセルの当番表を作っていま...
-
GIFアニメをループさせたくない
-
VBAで3秒だけ時間を止めたい
-
どなたかこのプログラミングを...
-
VBA for i=1 to lastrow
-
DOSコマンドのループ内のTIMEコ...
-
ListBox 複数選択 で オートフ...
-
vbscriptでIE自動入力(途中で...
-
vb.netからエクセル関数書き込み
-
DoEventsが必要な理由について
-
Java 南京錠
-
アクティブセルから、A列最終行...
-
テキストボックスの名前に変数...
-
範囲指定したセルを1つずつ飛...
-
VBA Dir関数でファイルをループ...
おすすめ情報