//此程序计算数字被2整除的次数。
//这是将其拆分为2的次数和次数。
let Num=64
let divisible=0
//这是三元运算符,它基本上会问一个问题。
Num % 2 === 0 ?
divisible=divisible++ : document.write(divisible);
Num/=2;
Num % 2 === 0 ?
divisible=divisible++ : document.write(divisible);
num/=2
Num % 2 === 0 ?
divisible=divisible++ : document.write(divisible);
//一旦语句的计算结果为假,它将写入数字被除的次数 乘2进入文档。
答案 0 :(得分:1)
您可以循环尝试。
let num=64;
let divisible=0;
while(num % 2 === 0) {
num /= 2;
divisible++;
}
console.log(divisible);
document.write(divisible);
答案 1 :(得分:1)
此代码存在多个问题。一些评论指出了循环问题。但是,一个不能用循环解决的突出问题是您滥用post-fix increment operator,++
。该运算符返回该值,然后递增该值,因此divisible = divisible++
将导致divisible
保持不变。根据您的意图,您所需要做的就是divisible++
。
尝试以下操作:
while(true){
if(Num % 2 === 0){
divisible++;
Num /=2;
}
else{
document.write(divisible);
break;
}
}
答案 2 :(得分:0)
在此示例中给出了64,并且没有提供循环,它将永远不会 上面提供的3个步骤中的document.write(divisible)语句。这就是为什么什么都没打印出来。
此外, divisible = divisible ++没有任何意义。在这里,由于它是后缀运算符,因此将分配第一个值,然后将其递增,因此整除值将仅为0 。
import random
import numpy as np
import cvxpy as cv
import math
n=5
m=4
U= cv.Variable (n)
Sg= cv.Variable (shape=(n,1), complex=True)
Se= cv.Variable (shape=(m,1), complex=True)
Sr= cv.Variable (shape=(m,1), complex=True)
W= cv.Variable (shape=(m,1), complex=True)
Pl=cv.Variable (1)
Qd= np.array([0, 1, 0, 4, 0])
Pd= np.array([0, 3, 0, 8.5, 0])
Sd= np.array ([(Pd**2+ Qd**2)**(1/2)]).reshape((5,1))
Smax= np.array([10, 0, 5, 0, 2])
Apos= np.array([[1, 0, 0, 0],[0, 1, 0, 0],[0, 0, 1, 0],[0, 0, 0, 1],[0, 0, 0, 0]])
Aneg= np.array([[0, 0, 0, 0],[-1, 0, 0, 0],[0, -1, 0, 0],[0, 0, -1, 0],[0, 0, 0, -1]])
Ybus=np.array([[166.605-96.2606j, -166.605+96.2606j, 0, 0, 0],[-166.605+96.2606j, 305.267-246.08j, -138.662+146.819j, 0, 0],[0, -138.662+146.819j, 356.948-394.397j, -215.285+247.578j, 0],[0, 0, -215.285+247.578j, 773.225-590.926j, -557.94+343.348j],[0, 0, 0, -557.94+343.348j, 557.94-343.348j]])
objective= cv.Minimize (Pl)
res=[]
res+=[Pl>= cv.sum(cv.real(Se+Sr))]
res+= [U[1]==1]
for j in range (m):
res+= [Se[j]==Ybus[j][j+1].conjugate()*U[j]-W[j]*Ybus[j][j+1].conjugate()]
res+= [Sr[j]==Ybus[j][j+1].conjugate()*U[j+1]-W[j]*Ybus[j][j+1].conjugate()]
res+=[cv.power((cv.norm(W[j]),2))<=U[j]*U[j+1]]
res+= [Sg-Sd== Apos@Se + Aneg@Sr]
for i in range (m):
res+= [cv.norm(Sg[i])<=Smax[i]]
#res+= [cv.norm([[2*W[i]],[U[i]-U[i+1]]])<=U[i]+U[i+1]]
res+=[cv.real(Se+Sr)>=0]
sos = cv.Problem(objective,res)
optval=sos.solve (verbose=True)
print (U.value)
而且,根据我的理解文档,写接受字符串参数,但此处可整除的是数字类型。