-1

これは、私が理解するのに少し苦労しているC言語の関数です。r関数に 6 または 10 または 13 の値を入力すると、どの値が出力されるかを示す必要があります。

int factor(int val){
int r=val-1;

while(val%r){
r--;

}
return r;

}

質問を誤解したかどうかはわかりませんが、残りは常に真実ではないでしょうか? 0 = falseand while ステートメントは常に 0 に達しないので、はr常にそれよりも小さくval等しくないため、減少するたびrに残りが大きくなるだけですか?

編集: 6%3 = 0 を説明するのを忘れていたことに気付きました! 助けてくれた人々を助けてくれてありがとう!

4

2 に答える 2

2

基本的に、関数はメソッドに入力された数値の最大係数を返します。

これは、「除算の余りがある間 (rは の因数ではありませんval)、r を 1 減らして再度チェックします。きれいな因数が見つかったら ( val % r is 0)、その因数を返します ( r)。

サンプル出力を含む JavaScript ポートを次に示します。

http://jsfiddle.net/43HxX/2/

JS で書き直しました。このalert(...)行のコメントを解除すると、6、10、および 13 の出力が表示されます。

于 2013-06-19T01:58:20.807 に答える