ホームページ ウェブフロントエンド jsチュートリアル javascript_javascript ヒントの「/」演算子の一般的なエラー

javascript_javascript ヒントの「/」演算子の一般的なエラー

May 16, 2016 pm 06:18 PM
オペレーター

//二分探索の再帰バージョンを忘れた

コードをコピー コードは次のとおりです:

関数binary_search(arr, target,low,high){
if(low var min=(low high)/2;
if(target>arr[ min])
return binary_search(arr,target,min 1,high);
else
return binary_search(arr,target,low,min); else if(low==high) { //要素が 1 つだけ残っています
if(arr[low]==target)
return low;
else return -1
}else if(low>high){ //空です。arr の初期高値を計算するときは、arr .length-1 を考慮する必要があります。

}
}

var arr=[1,2] ,3,4, 5,6];
alert(binary_search(arr,3,0,arr.length-1));
夜にデータ構造を見て、jsで二分探索アルゴリズムを書きました(コードは上記の通り)、テストデータとしてランダムに配列を書いた(上記の通り)、検索対象の添字を出力するはずですが、予想外のことが発生しました。約 2 秒後、ブラウザは実行中のスクリプトを自動的に終了し、しばらく戸惑いました。

経験上、スクリプトを実行する過程で無限ループが発生するはずですが、独習中にアルゴリズムを確認しましたが、問題はありませんでした (教科書に従ってコードを直接入力するだけで問題ありません)。あなたは間違いではありません)、しかし問題は残ります。そこで、最初の判定条件に次のように出力文を追加しました。

コードをコピー コードは次のとおりです。
//二分探索忘れ再帰バージョン関数 binary_search(arr,target,low,high){
if(low var min=(low high )/2;
if(target>arr[min])
return binary_search(arr,target,min 1,high);
else
return binary_search(arr,target,low,min) ) ;
}else if(low==high){ //残りの要素は 1 つだけです
if(arr[low]==target)
else return <🎜; >}else if(low>high){ //空の場合、arr.length-1 を使用して arr
の初期高値を計算するときに考慮する必要があります。 return -1;
}
}


実行すると、ダイアログ ボックスに 2.5 という数字が表示されます~~ 突然、コンピューターを叩きたい衝動に駆られました。
エラーの原因と概要:
JavaScript の「/」演算子は C の「/」演算子とは異なります。後者は自動的に四捨五入されますが、前者は四捨五入されていない場合は小数点を取得します。整数で割ります (たとえば、5/2=2.5)。
解決策:

(1)var min=parseInt((low high)/2);
(2)var min=Match.floor((low high)/2);
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語のルート演算子とは何ですか? C言語のルート演算子とは何ですか? Mar 06, 2023 pm 02:39 PM

C 言語にはルート演算子はなく、ルートを開くには組み込み関数 "sqrt()" が使用され、構文 "sqrt(value x)" が使用されます (例: "sqrt(4)")。 4. に対して平方根演算を実行すると、結果は 2 になります。 sqrt() は C 言語の組み込みルート演算関数であり、その演算結果は関数変数の算術平方根であり、この関数は負の値を演算したり、虚数の結果を出力したりすることはできません。

Java で % は何を意味しますか Java で % は何を意味しますか Mar 06, 2023 pm 04:48 PM

Java では「%」は剰余を意味し、除算を実行して剰余を求めることができる二項算術演算子です。構文は「オペランド 1 % オペランド 2」です。剰余演算子 "%" のオペランドは通常、正の整数、負の数、さらには浮動小数点数です。この演算に負の数が含まれる場合、結果は前の数値が正か負かによって異なります。

Golang エラー:「... 演算子の使用が無効です」どうすれば解決できますか? Golang エラー:「... 演算子の使用が無効です」どうすれば解決できますか? Jun 24, 2023 pm 05:54 PM

Golang 開発者にとって、「invaliduseof...operator」はよくあるエラーです。このエラーは通常、可変長パラメーター関数を使用するときに発生します。これはコンパイル時に検出され、どの部分に問題があるかが示されます。この記事ではこのエラーの解決方法を紹介します。 1. 可変長引数関数とは 可変長引数関数とは、可変長引数関数とも呼ばれ、Golang 言語における関数の一種です。可変長パラメータ関数を使用すると、次のように複数のパラメータ関数を定義できます。

PHPの「==」記号の意味は何ですか? PHPの「==」記号の意味は何ですか? Mar 14, 2023 pm 07:05 PM

PHP では、「==」記号は 2 つのオペランドが等しいかどうかを比較できる比較演算子で、構文は「オペランド 1 == オペランド 2」です。 「==」演算子は、左側の変数 (式または定数) が右側の変数 (式または定数) と同じ値を持つかどうかを比較およびテストします。比較するのは変数の値のみであり、データは比較しません。種類。 2 つの値が同じ場合は true 値を返し、2 つの値が同じでない場合は false 値を返します。

C言語における+=演算子の意味と使い方の解析 C言語における+=演算子の意味と使い方の解析 Apr 03, 2024 pm 02:27 PM

+= 演算子は、左オペランドの値を右オペランドの値に加算し、その結果を左オペランドに割り当てるために使用されます。これは数値型に適しており、左オペランドは書き込み可能である必要があります。

PHPで2つの数値が割り切れるかどうかを判断する方法 PHPで2つの数値が割り切れるかどうかを判断する方法 Jan 10, 2023 pm 03:12 PM

PHP では、「%」演算子と「==」演算子を使用して 2 つの数値が割り切れるかどうかを判断できます。「%」演算子を使用して 2 つの数値を除算して余りを求め、その後「=」演算子を使用するだけです。 =演算子 求めた余りが0かどうかを判定するだけです。 構文は「数値1 % 数値2 == 0」 0であれば割り切れます、0でなければ割り切れません。

Python 構文のマインド マップ: コード構造の深い理解 Python 構文のマインド マップ: コード構造の深い理解 Feb 21, 2024 am 09:00 AM

Pythonはそのシンプルで読みやすい構文から幅広い分野で広く使われています。プログラミングの効率を向上させ、コードがどのように機能するかを深く理解するためには、Python 構文の基本構造をマスターすることが重要です。この目的を達成するために、この記事では、Python 構文のさまざまな側面を詳しく説明した包括的なマインド マップを提供します。変数とデータ型 変数は、Python でデータを保存するために使用されるコンテナです。マインド マップには、整数、浮動小数点数、文字列、ブール値、リストなどの一般的な Python データ型が表示されます。各データ型には独自の特性と操作方法があります。演算子 演算子は、データ型に対してさまざまな操作を実行するために使用されます。マインド マップは、算術演算子、比率など、Python のさまざまな演算子の種類をカバーしています。

Python のマジックメソッド Python のマジックメソッド Apr 13, 2023 am 10:25 AM

Python のマジック メソッドは、クラスに「マジック」を追加できる特別なメソッドで、多くの場合、2 つのアンダースコアで囲まれた名前が付けられます。 Python の魔法のメソッド。ダンダー (二重下線) メソッドとも呼ばれます。ほとんどの場合、コンストラクター (init)、文字列表現 (str、repr)、算術演算子 (add/mul) などの単純なものに使用します。実は、聞いたことのない便利なメソッドがたくさんあります。この記事では、それらの魔法のメソッドを整理していきます! コンテナ クラスで使用できるイテレータ __len__ メソッドのサイズは誰もが知っています。 len() 関数がオンです。ただし、イテレータを実装したクラスオブジェクトの長さを取得したい場合は、

See all articles