- ベストアンサー
Javaのプログラミング課題解決方法と結果の説明
- Javaのプログラミング課題で困っている方への解決方法と結果の説明
- Javaのプログラミング課題でわからない部分の解説と結果の説明
- Javaのプログラミング課題解決方法とA[k]==aの比較回数の説明
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A=new Array(3, 8, 19, 20, 22, 24, 45); //新しい配列Aを設定。配列要素は()の中身。 i=0; //変数iを設定。設定値は0。 j=A.length-1; //変数iを設定。設定値はAの要素数-1(つまり7-1=6)。 a=19; //変数aを設定。設定値は19。 k=Math.floor((i+j)/2); //変数kを設定。設定値は(i+j)/2の小数点以下を切捨てした値(つまり初期点では(0+6)/2=3)。 while(i<=j){ //iがj以上の間繰り返し。 if(A[k] == a){ //A[k]とaの値が等しい場合 break; //whileの繰り返しを終了。 } else if(A[k] > a){ //A[k]がaより大きい場合 j = k - 1; //jにk-1を設定する。 } else{ //上記以外の場合(つまりA[k]がa以下の場合) i = k + 1; //iにk+1を設定する。 } k = Math.floor((i+j)/2); //変数kを再設定。設定値は(i+j)/2の小数点以下を切捨てした値。 } if(i>j) k=-1; //iがjより大きい場合はkに-1を設定する。 document.write(a," ",k); //出力 日本語で説明すると、以上のようなプログラムかと思います。 質問は、『if(A[k] == a){』の部分を何度繰り返すか、という問題になると思います。 参考URL等で確認して、問題を自分で解けるように頑張ってください。 参考までに。
その他の回答 (3)
- sakusaker7
- ベストアンサー率62% (800/1280)
最後の行に document.write とかあるし、JavaScriptでいいんじゃないですか? 出力のところだけいじれば Windows cscriptでも実行できたし。 それはともかく 何かの課題じゃないんですか、コレ?
- VCAT
- ベストアンサー率20% (16/79)
まちがえたorz ここはJavaScriptです。 Javaの質問は他で。
- VCAT
- ベストアンサー率20% (16/79)
ここはJavaScriptではありません。 Javaは他で。
お礼
回答ありがとうございます。 大変参考になりました、あとは自分の力で解けるように がんばってみます。