-5
long long fast_exp(long long int base,long long int exp,int p) {
int res=1;
while(exp>0) {
if(exp%2==1)
{res=(res*base)%p;}
exp=exp>>1;
base=(base*base)%p;
}
return res;
}
이것은 모듈러 지수 함수의 함수입니다. 나는 while loop에 대해 물어보고 싶다. 이 루프는 언제 종료됩니까? exp
은 항상 0보다 큽니다. 따라서이 루프가 실행되는 방식과 줄마다 어떻게 작동하는지이 루프를 이해하지 못합니다. 나는이 루프의 접근법을 이해하지 못한다.항상 양수 값을 가지기 때문에 프로그램에서 루프가 종료됩니까?
만약 했어야 반환 값은
int res
입니다[내가 직접 디버깅하기 위해 노력하지 않았기 때문에 downvoted] (http://idownvotedbecau.se/nodebugging/) 질문이 불분명하기 때문에. – EJoshuaS
아마도 [프로그램 디버깅 방법을 배우는] 시간이 좀 걸릴 것입니다 (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)? –