> ここで、今日ヒントが出たのですが、次のプログラムを参考にして(1)をやってくださいとのことでした。
なんてぇ補足 (^^;
要するに、再帰を使え、とのことかな?
#include <iostream.h>
void sum(int x, int xx[], int n)
{
int i, s;
for (i = 0, s = 0 ; i < n ; ++i)
s += xx[i];
if (s == x) {
for (i = 0 ; i < n ; ++i)
cout << " " << xx[i];
cout << endl;
return;
}
for (i = 1 ; i <= x - s ; ++i) {
xx[n] = i;
sum(x, xx, n + 1);
}
}
int main()
{
int x;
cout << "sum:";
cin >> x;
int xx[10];
sum(x, xx, 0);
return 0;
}
たいして分かり易くなったわけではありませんね。
■以下、余談
honiyon> 学校の課題ですよね?これ
honiyon> 他力本願な姿勢であると誤解されてしまいますよ
最初から、質問のタイトルに「課題」と入っているのだし、
質問サイトの本質は、他社の知恵におすがりしよう、というのだから
自分で何をしていようがかまわんとは思います。ただ、
> スマソ。
2ch なんか見ている暇があったら、テキストや参考書を開きましょう :-)
とは言うものの、あのソースを参考に、っていうのも辛いものが
ありますね。
念の為、最後に書いておきますけど、私が提示しているソースは
全部 c++ なので、多分、そのまま課題には使えないと思いますよ。
補足
スマソ。 ひたすら考えてるんですがまったくわからないのです。。。 誰に聞いても教えていただけないので。