いくつかの正方形の1正の値
ダブル基本型と浮動小数点型int型の整数の指数を考えます。パワーベースの指数を求めて。
ベースと指数が同時にではないことを確認0
私の解決策
Math.pow(x,y)??
function Power(base, exponent)
{
let r = 1
while(exponent--){
r*=base
}
return r
}
その他の分析
あなたは、問題の理解を参照してください場合は、上記のアプローチはしないだろう。べき乗電力は花を再生することができます。。。
高速電力
以下のようにBaiduの百科事典は、より直感的なインターフェースを説明し
ているが、1のコンピューティングパワー、2のパワー及び8のパワー、および、行を乗算する限り、11の計算された電力です。私たちは、ビット1つの指数のバイナリ表現を見つけるために必要な
プロセスを
-
指数番号が0にシフトされ、サイクルが停止されます
- とき
exponent & 1 == 0
の時間、res = res*x
x = x*x
- exponet正しいものの数
- とき
function Power(base, exponent)
{
let res = 1
let n
if(exponent==0){
return 1
}else if(exponent<0){ //指数为负
n = -exponent
}else{
n = exponent
}
while(n){
if(n&1){
res *=base
}
base *=base //这里注意!!!
n = n >>1
}
return exponent>0 ? res:1/res
}
偶奇の前になるようにアレイの順序を調整2.
アレイ内の数字の順序を調整する機能を実現するために、整数の配列を入力し、そのようなアレイの前半のすべての奇数一部こと、全ての偶数列の後半に位置し、奇数の間と比較的偶数、奇数とを確保されています同じ位置。
私の解決策
最初のアイデア:反復は、その後も、数がプッシュの終わりに、配列から削除されますが発生しました。
しかし!アレイの端が奇数の場合、すなわち、偶数サイクル、続いて、全ての偶数端にプッシュを有する、アレイを通して完成配列を破壊しません。
function reOrderArray(array) //错错错
{
for(let i = 0;i<array.length;i++){
if(array[i]%2 ==0){
let tmp = array[i]
array.splice(i,1)
array.push(tmp)
}
}
return array
}
方法をしたい:反復偶数、空の配列、オリジナルのステッチと空の配列の配列に。
しかし!私たちも、-でもトップフロントの後ろに削除されたとき、連続した偶数に会ったこの1つの契約に残るはずですが、私++、さらにはスキップされた上で
function reOrderArray(array) //错错错
{
let arr = []
for(let i = 0;i<array.length;i++){ //循环出问题了
if(array[i]%2 ==0){
let tmp = array[i]
array.splice(i,1)
arr.push(tmp)
}
}
return array.concat(arr)
}
究極厄介:2つの空の配列、奇数の場所、場所偶数番号。二つの配列のスプライシング、オーバー通過後。
function reOrderArray(array) //对了
{
let arr1 = []
let arr2 = []
for(let i = 0;i<array.length;i++){
if(array[i]%2 ==0){
arr2.push(array[i])
}else{
arr1.push(array[i])
}
}
return arr1.concat(arr2)
}
実際には、理由は、エラーが発生したときに横断するビットによって元の配列、ビットを変更ときに、2つの前の問題は、アレイトラバーサルに近づくことです。