100-71
제목: 함수 더블 파워(double base, int exponent)를 실현하고base의exponent 차원을 구합니다.넘침을 고려할 필요가 없다.
분석: 이것은 보기에 매우 간단한 문제이다.아마도 많은 사람들이 제목을 본 후 30초 후에 다음과 같은 코드를 쓸 것이다: 더블파워 (더블베이스, int exponent)
double result = 1.0; for(int i = 1; i <= exponent;++i) result *= base; return result; }
아이디어:
상기 코드는 적어도 하나의 문제가 있다. 입력한exponent는 int형의 수치이기 때문에 정수일 수도 있고 마이너스일 수도 있다.상술한 코드는exponent가 정수인 상황만 고려했다.
다음에 우리는 코드를 다음과 같이 바꾸었다.
bool g_InvalidInput = false;
double Power(double base, int exponent)
{
g_InvalidInput = false;
if(IsZero(base) && exponent < 0)
{
g_InvalidInput = true;
return 0.0;
}
unsigned int unsignedExponent = static_cast<unsigned int>(exponent);
if(exponent < 0)
unsignedExponent = static_cast<unsigned int>(-exponent);
double result = PowerWithUnsignedExponent(base, unsignedExponent);
if(exponent < 0)
result = 1.0 / result;
return result;
}
double PowerWithUnsignedExponent(double base, unsigned int exponent)
{
double result = 1.0;
for(int i = 1; i <= exponent; ++i)
result *= base;
return result;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.