부분적인 곱셈처럼 보이는 것에 대한 통찰력이 필요합니다. 부분적으로 또는 래핑 된 곱셈 -이 함수를 식별 할 수있는 사람이 있습니까?
unsigned long long DoBusyWork(unsigned long long x, unsigned long long y, int n)
{
while (n--)
x = NotMultiply(x,y);
return x;
}
는이 결과를 계산하기위한 어떤 단축키가 있습니까 다음과 같이
#define LOW(x) ((x)&0xffffffff)
#define HIGH(x) ((x)>>32)
unsigned long long NotMultiply(unsigned long long x, unsigned long long y)
{
return HIGH(x)*HIGH(y) + LOW(x)*LOW(y);
}
이 기능은 여러 번 반복된다?
x == y 인 경우는 어떻게됩니까? 도움이 될 추가 정보
모든 링크는 ..
"DoBusyWork"라는 이름이 단서가 아닌 것이 확실합니까? 그것은 목표가 유용한 것을 계산하는 것이 아니라 시간을 낭비한다는 것을 의미합니다. – RBerteig