最初の数多くの豊富な数値(12,18,20,24)など、あるセットの線形結合として生成できるすべての数を効率的に計算する方法を理解しようとしています。問題は、私が現在取り組んでいるアプローチは、合計が100を超えないa * 12 + b * 18 + c * 20 + d * 24の数字をすべて実行することです。今は2つの方法を考えました。 whileループの最上位にある条件に基づいて異なるものをインクリメントする複数の入れ子のwhileループまたはwhileループ。両方の方法で私の問題は、私はまだいくつかの異なる数を集計しようとしているかわからないので、実行時までに必要な条件付きリストまたはネストされたループがどれくらいあるか分かりません。私のプログラムを書いて、n個のn回のネストされたn回、またはn個のn個の条件を満たすようにする方法はありますか?ここで複数のネストされたループを作成する
は、スイッチ・ブロックの概要である:
int count=1;
while(true){
if(num2<smal){
switch(count){
case 1:
a++;
break;
case 2:
b++;
break;
case 3:
c++;
break;
case 4:
d++;
break;
}
}
else {
switch(count){
case 1:
if(a!=0){
a=0;
b++;
}
else{count++;}
break;
case 2:
if(b!=0){
b=0;
c++;
count--;
}
else{count++;}
break;
case 3:
if(c!=0){
c=0;
d++;
count--;
}
else{count++;}
break;
case 4:
break;
}
}
//num is update here
if(count==4){break;}
}
おそらく、それを考えることができたはずです。私はC + +のbtwを使用しています。私は私のアプローチを再検討する必要があるかもしれないと思う。再帰がすぐに手を伸ばしてしまうような気がします。 – emschorsch
うわープロジェクトオイラーの質問を誤解していたことに気付きました。それは質問が信じられないほど難しいと思った理由です。 LOLは私が今理解しているように、それはほとんど自明ではないようです。私は2つの数字の和として表現することができる数字を見つける必要があります。それは、すべてをすべて単純化する数字の倍数を含んでいません。とにかく助けてくれてありがとう。 – emschorsch
好奇心が強い、あなたは質問にリンクできますか?ありがとう! – Bill