-1
私のプログラムは現在、正の整数の素因数分解を昇順に出力します。私は降順で数値を出力するように関数を設定する方法を理解しようとしています。再帰を使用した素因数分解
たとえば、showFactors(100)は現在 "2 2 5 5"を出力します。
代わりに "5 5 2 2"を出力します。
10 // Void function "showFactors" that takes in an int "number" and another int "factor", which is initialized to 2
11 void showFactors(int number, int factor = 2)
12 {
13
14 if (number<2) //returns nothing if number<2
15 {
16 return;
17 }
18 if (number%factor==0) //modulus function is used to get prime factorization
19 {
20 cout<<factor<<" ";
21 showFactors(number/factor, factor); //recursive call
22 }
23 else //if (number%factor != 0) //this modulus function is used in order to output factor !=2
24 {
25 showFactors(number, factor+1);
26 }
27 }
coutのコールがどこに行くか、単に再配置することによって簡単に修正がなければならないような気がしますが、私はこれまで任意の運を持っていませんでした。
編集
:うん、それはそれだけで21行の後に行くべきではありませんライン20および21
@prpを切り替えるのと同じくらい簡単でしたか? – vu1p3n0x