0-10에서 숫자를 선택해야한다고 가정 해 봅니다. 내가 선택하고 싶은 다음 숫자는 0랩핑 넘는 숫자의 양방향에서 최단 경로를 찾는 방법은 무엇입니까?
지금 규칙은 내가 1 수를 증가 시키거나 1을 감소시키는 유지해야 있습니다 6.
입니다
내가 선택할 수는있다, 수 마지막 숫자를 둘러 쌀 수도 있습니다.
이제 가장 중요한 것은 가장 짧은 방향을 찾는 것입니다. 이 경우
그래서
6-5-4-3-2-1-0 = 7 moves.
6-7-8-9-10-0 = 6 moves.
그래서 증가 승리.
이 잘 나는
어떤 방법으로 .. 대신 .. 양방향으로 while 루프를 사용하여 적은 이동 걸립니다 알아내는 이제 (아마도 깨진)이 코드
int movesInc = 1;
int movesDec = 1;
int curNumber = 6;
int nextNumber = 0;
while((curNumber-- % 11) != nextNumber)
movesDec++;
while((curNumber++ % 11) != nextNumber)
movesInc++;
함께했다 while 루프없이 이것을 할 수 있습니까? 아마 수학 방정식의 일종일까요?
0에서 10까지의 숫자를 허용하는 경우 10이 아닌 11을 사용합니다. –
"제대로 작동하면 테스트되지 않습니다."... 테스트하십시오. 그때. – Bart
오, 고마워, 내 마음이 어지럽게 된 것을 잊어 버렸어. – SSpoke