アプリ版:「スタンプのみでお礼する」機能のリリースについて

ttp://homepage3.nifty.com/aokura/joho/sample21.html
これは、ソフトウェア開発技術者試験の問題をC言語に直してあります。
問題はttp://www.kikiroom.com/it/sw/14s/14-sw-pm2.htmlです。

ここでかかれているソースは4桁固定の処理ですが
これを自分で好きな桁数を入力して動作させるにはどうしたらよいでしょうか。

よろしくお願いします。

A 回答 (5件)

> ループさせないとnums[]には一つのパターンしか入らないのではないでしょうか・・



"多重"ループは不要です。
    • good
    • 0
この回答へのお礼

ありがとうございます。

私自身C言語を習いたてでしてまだ応用力があまりない為アルゴリズムを導き出すことが出来ませんので、これまでの方法でやろうと思います。。

わざわざヒントを与えていただいてありがとうございました。

お礼日時:2007/12/15 00:14

> 数字を重複しないように一桁目からx桁目までループさせ、


> 全てのパターンの数字を作る関数だと思います。

だったら多重ループは不要です。
    • good
    • 0
この回答へのお礼

ありがとうございます。

配列nums[]に全パターンの数字を入れることが条件となっておりますので、
ループさせないとnums[]には一つのパターンしか入らないのではないでしょうか・・

お礼日時:2007/12/14 23:00

> 具体的にどの様な方法で実現できるのかご教示願えませんでしょうか。



では伺います。
initは何をする関数ですか?

この回答への補足

あ~間違えてました。

気をつけて書いたつもりですが重複しているものを書いてしまいました。
100→×

補足日時:2007/12/14 04:31
    • good
    • 0
この回答へのお礼

数字を重複しないように一桁目からx桁目までループさせ、
全てのパターンの数字を作る関数だと思います。

例えば以下のように・・
012
013

097
098
100
102

お礼日時:2007/12/14 02:28

> その場合は、init()へ桁数を送りその桁数までforの処理を以下のように行うという形しかないでしょうか。



initの方法は他にもあります。
    • good
    • 0
この回答へのお礼

様々な言葉でサーチをかけましたがなかなかそのような処理が書いてあるページにたどり着けませんでしたので、
仕方がないと思い、長いですがこの方法でやるしかないと思っていました。

具体的にどの様な方法で実現できるのかご教示願えませんでしょうか。

お礼日時:2007/12/13 23:32

各桁を重複させずに作れる数は高々10桁なので、


10桁版を作っておけばあとはどうにでもなるんじゃないですか?
    • good
    • 0
この回答へのお礼

なるほど、そういう手もありますね。ありがとうございます。

その場合は、init()へ桁数を送りその桁数までforの処理を以下のように行うという形しかないでしょうか。

for(){ 桁数1の場合ここのみ
for(){2の場合ここまで
for(){3の場合ここまで
 ~
for(){10の場合ここまで
}
~
}
}
}

お礼日時:2007/12/13 21:18

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