알고리즘 문제 20 수치의 정수 차방
함수의 정수 차멱을 구하고, 넘침과 대수 문제를 고려하지 않는다
분석
본제의 사고방식은 매우 간단하고 분치 전략을 채택하여 정수의 반차멱을 구하고 더 나아가 차례로 해답을 구한다.이 문제는 밑수와 지수의 각종 상황에 주의해야 한다.
코드
1 double powercore(double base,int exponent)
2 {
3 if (exponent==1)// : 1
4 {
5 return base;
6 }
7
8 double result=powercore(base,exponent>>2);
9 result*=result;
10 if (exponent%2==1)//
11 {
12 result*=base;
13 }
14
15 return result;
16
17 }
18
19 double mpower(double base,int exponent)
20 {
21 if (base==0&&exponent==0)
22 {
23 throw std::exception("Invalid input.");
24 }
25
26 if (exponent==0||base==1)// 0 1
27 {
28 return 1;
29 }
30
31 double exp=abs(exponent);
32 double result=powercore(base,exp);
33
34 if (exponent<0)// 0,
35 {
36 result=1/result;
37 }
38
39 return result;
40 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.