• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数字探索について、プログラムかフローチャートを教えてください(>_<))

数字探索のプログラムかフローチャートを教えてください

このQ&Aのポイント
  • Microsoft Office 2007-ExcelのVisual Basicを使用して、5桁の数字500個の中から指定した数字を探索する方法を教えてください。
  • 探索する数字が他の数字と2つ以上の位で一致した場合、その数字を表示したいと考えています。
  • 要求された機能に基づいて、数字探索のフローチャートを作成し、それをもとにプログラムを作成することができれば、自分で試行錯誤することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.2

>やっぱりこれが一番簡単なんですかねー(-_-) 実際の判断ロジックとしては 十進数値の各桁をチェックしなければいけないんで それ以外の考え方ってほとんど無いと思いますよ (2進のビット比較ならXOR取れば一発で終わるけど) 後はデータ結果のバッファを少なくするぐらいでしょうね #1では単純に5×500個用意するように書いてますが 本来500個(画数字毎の一致桁数格納領域)があれば出来る話しですので 数値を読み直さないでバッファに入れるにしても領域が1000個あれば足りる話 速度改善という意味では無条件で一致する桁というのも 存在してきますので(5桁に達していない場合) その辺りが改善できるぐらいでしょう

その他の回答 (1)

  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.1

>※数字について、"40"のように、5桁に満たない数字は、"00040"と、"0"を前に付けています。 用は5桁文字列に変換しているということですよね(このような変換処理は一番最後でいいと思います) 非常に安直に考えた処理の流れです ※ 処理速度もメモリ効率も何も考えてません フローって言っても既に自分が書かれてることを 其のままやればいいだけです 1.結果格納用のメモリを初期化(以下の配列分確保)     ・何桁一致したのか(最大5桁)     ・一致した実際の数字(最大500個)   これを初期化する 2.比較先の桁位置nと一致桁数aを初期化する 3.比較先数字と入力数字のn桁目を比較する 4.一致していた場合一致桁数aを+1する 5.n桁目の位置を変更して 3へ(5桁分繰り返す) 6.一致した桁数と比較先数値を結果保持用メモリにセットする     ・a桁一致したというデータを+1     ・a桁一致した実際の数値を保存する 7.新たな比較先数字を取得して2へ戻る(500回繰り替えす) 8.結果格納メモリを好きなように表示する 実際の処理を書かないとこんな感じで書くしかないですがいいですか? 当然数値には0ってのもあるでしょうから数値のクリア方法や 結果の扱い方にはちょっと注意する必要があります

noname#236241
質問者

お礼

私もその流れは考えたのですが、、やっぱりこれが一番簡単なんですかねー(-_-) ご丁寧にありがとうございます!