• 締切済み

プログラミングにご助力下さい

下図のような状態で0番から矢印に沿って、全ての番号に10通の手紙を送り、送るのに何回の工程を費やしたかを数えるプログラムソースを書きたいのですが、自分のプログラム知識では上手くまとめ切れません。 C言語を軽く学び基本的な文法や変数,配列,構造体が理解できる知識です。 この例題は自分で考えだしたものですが、これのプログラムソースを把握できれば自分がこの後に行おうとしていることに活かせるため何としても理解したいと考えています。ご助力お願い致します。 1通目に関して まず0番から1番2番3番に手紙が届く(3回の工程を費やした) 続いて1番か4番と8番に、といった具合に1通目の手紙を全ての番号に届けたら、0番目から2通目の手紙を送る。

みんなの回答

回答No.2

プログラムの問題ではありません。 アルゴリズムの問題です。 その前に要件を理解すること。

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.1

処理要件が全く伝わりません 送る手紙は10通確定なのですか? でも『1通目に関して、まず0番から1番2番3番に手紙が届く(3回の工程を費やした)』 コレを読むと、0から1,2,3に3通送ったように読み取れる 3回の工程ってなに? 0から1に行き、0に戻り2に行き、0に戻り3に行くなら6工程 <-正確には、工程ではなく行程だよね? 何をどうしたらどうなって結局何になるというルールが明確でありません 目的やルールが明確でない状態では、プログラミングは始められない

pp_daburu
質問者

補足

すいません手紙という表現が逆に伝わりにくくなってしまったようです。 手紙(情報)が0から1に行き、0に戻り2に行き、0に戻り3に行くのではなく 1通目の手紙(情報)が矢印でつながっている0番から1番と2番と3番で同時に受信できるということです。 また工程(正しくは行程)の定義もわかりやすくするため、ある地点から手紙を発信した回数を行程と定義します。 例えば、0番が手紙を送る場合、1、2、3番に手紙を同時に送るため、これを1行程とします。 次に1番が8番と4番に(これで2行) 2番が4番と5番に(これで3行) 3番が5番に(これで4行程) 手紙を送信。 8番が7(5行程) 4番が7と6(6行程) 1通の手紙を送るのに6行程 10通なら6行程*10通=60行程という値が結果として集計できるプログラムソースを書きたいと考えています。

関連するQ&A