public long GetMinCalculateCount(long sourceX, long sourceY, long targetX, long targetY) { int count = 0; while (targetX > 0 &;&; targetY > 0) { if (targetX == sourceX &;&; targetY == sourceY) { return count; } else if (targetX % 2 == 1 &;&; targetY % 2 == 1) { count++; targetX--; targetY--; } else if ((targetX % 2 == 0 &;&; targetY % 2 == 0) &;&; ((targetX / 2 > sourceX &;&; targetY / 2 > sourceY) || (targetX / 2 == sourceX &;&; targetY / 2 == sourceY))) { count++; targetX /= 2; targetY /= 2; } else { return (targetX - sourceX == targetY - sourceY) ? count + (targetX - sourceX) : -1; } } return -1; }
点赞 评论

相关推荐

Z_eus:别打招呼直接发你的优势
点赞 评论 收藏
分享
牛客网
牛客企业服务