Skiena의 알고리즘 서적을 따르고 있습니다. 1 장에서는/또는 * 연산자를 사용하지 않고 실수를 나눌 수있는 문제가 있습니다.// * 연산자를 사용하지 않고 divide를 수행하는 가장 빠른 방법
def main(dividend, divisor):
print "dividend : ",dividend
print "divisor : ", divisor
if dividend<divisor:
print "dividend has to be greater than divisor"
return;
quotient=0
sum=0
while sum<dividend:
sum = sum+divisor
print "sum : ",sum
quotient = quotient+1
if sum>dividend:
remainder = dividend-(sum-divisor)
quotient=quotient-1
print "remainder : ", remainder
print "quotient :", quotient
if __name__ == "__main__":
# pass any two real number as dividend and divisor
main(29, 3)
이 문제는 또한, "그것을 할 수있는 가장 빠른 방법을 찾아"해야한다고 주장 : 이 같은 파이썬에서 것을 구현했습니다. 문제를 더 빨리 해결할 수있는 다른 방법이 있습니까?
SO에 대한 주제가 아닌 2 – bengoesboom
의 요인으로 나누는 비트 시프 팅을 고려하십시오. 일반 컴퓨팅 환경에서 가장 효율적인 솔루션은 기본 계산을 수행하는 데 사용 가능한 기능을 사용하는 것입니다. –
"배당금은 제수보다 커야합니다."--- 의심 스럽습니다. 왜? –