저는 현재 숫자가 5로 나눌 수있는 빈도를 확인하는 방법을 쓰고 있습니다. 예를 들어, 25는 2 회, 125는 3 회입니다.나머지 숫자는 얼마나 자주 나눌 수 있습니까?
내 코드는 정확하다고 생각하지만 항상 실제 시간보다 한 번 더 더 많은 시간을 사용할 수 있다고 명시합니다 (예 : 25 회는 세 번 잘못되었습니다).
int main()
{
div_t o;
int inp = 25, i = 0;
while(o.rem == 0){
o = div(inp, 5);
inp = o.quot;
i++
}
return 0;
}
가 이미 코드를 디버깅하고 문제가 그 나머지는 이유 즉 0이 큰 경우에도 더 루프에 한 번 단계 있다는 것을 생각 :
내 접근 방식은 다음과 같다? 나는 그 주위에 내 머리를 감쌀 수 없다.
First: 25/5 = 5; Rest = 0;
Second: 5/5 = 1; Rest = 1; - Shouldn't it stop here?
Third: 1/5 = 0; Rest = 1;
아 ... 알았어. 나머지가 0 인 지점은 나눗셈이 나올 때 더 큰 제로가되는 숫자로 끝날 때 도달됩니다.
해결 방법은 무엇입니까? 난 - = 1 좀 해결 것 같아 내가 깰 경우 사용하지 않도록하고 싶었다
합니다. – unwind