2010-05-20 5 views
0

주어진 문제 :C++에서 오랫동안 정밀도가 매우 좋지 않다고 알려져 있습니까?

n 행, m 시트와 극장 및 예약되어 있음을 감안할 목록. 이 값을 감안할 때, 두 친구가 함께 앉을 수있는 방법을 결정하십시오. 동일한 행에 .

극장의 크기가 2x3이고 첫 번째 행의 첫 번째 좌석이 예약 된 경우이 두 사람이 이용할 수있는 3 개의 좌석이 있습니다.

내가

기능 자체를 취급하고있어 문제는 이러한 제약에가 기반으로하는 좌석의 수를 반환하기로되어있다. 반환 값은 길다.

필자는 필자의 코드를 여러 번 읽었으며 ... 필자는 그것이 옳다는 것을 확신한다. 내가하는 모든 일은이 하나의 가치를 증가시키는 것입니다. 그러나 내 함수가 반환하는 모든 값은 실제 솔루션과 1 또는 2가 다릅니다.

아이디어가 있습니까? 그리고 제 코드에 문제가 있다고 생각한다면 제게 말해주십시오. 나는 뭔가를 배울 때까지 바보라고 불리는 것에 신경 쓰지 않습니다.

+0

코드를 볼 수 있다면 도움이 될 수 있습니다. – ChrisF

+2

잘못된 대답을 얻는다면, 코드에 문제가 있다는 것은 매우 안전한 내기 일 것입니다. 아무도 코드를 보지 않고 무엇을 말할 수 있습니다. –

+5

코드 없음 - 아이디어가 없습니다. 깨진 긴 오랫동안 산술이 일어날 가능성은 희박합니다 –

답변

9

오버플로 또는 언더 플로우가 아닌 이상 코드에 문제가있는 것 같습니다. 정수형의 경우 c 또는 C++에 정밀 모호성이 없습니다.

3

먼저 C++은 long long 타입이 아닙니다. 둘째, C99에서 long long은 LLONG_MIN (< = -2^63)에서 LLONG_MAX (> = 2^63-1)까지의 정수 값을 정확하게 나타낼 수 있습니다. 문제는 다른 곳에있다.

0

문제의 설명이 주어지면 모호하지 않다고 생각합니다.

일반적으로 문제는 조합을 가져 오는 순서가 중요한지 아닌지를 모르는 것이지만 명확한 예는 명확합니다. 순서가 중요 할 경우 3 가지가 아니라 6 가지 해결책이 필요합니다.

코드가이 장난감 예제에 제공하는 값은 무엇입니까?

어쨌든 원하는 경우 내 자신의 값으로 몇 가지 예를 추가 할 수 있으므로 코드를 게시하지 않으면 훨씬 더 많은 작업을 수행 할 수 있습니다. 분명히 행은 독립적이므로 행별로 결과 만 표시 할 것입니다.

보기의 계산 관점에서
X occupied seat 
. free seat 

1: X..X 
1: .X.. 
2: X...X 
3: X...X.. 
5: ..X..... 

, 나는 (적어도) N은 좌석의 수가 인 O (N) 프로세스의주의해야한다 : 첫 번째를 제외하고, 한 번에 거의 각 좌석을 검사해야한다 (그리고 마지막) 두 번째 (그리고 마지막으로 다음) 점령되는 경우; 이는 선형 적으로이를 해결할 수 있습니다.보기의 기술 관점에서

:

  • 당신이 장난감 예에 너무 많은 좌석

내가 좋겠를 포함되지 않습니다 있는지 확인 0

  • 에 변수를 초기화해야합니다 더 많은 것을 기꺼이 도와 드리겠습니다. 그러나 당신이 그것을 생각하고 침착하게 알고리즘을 검토 할 수있는 기회를 갖기 전에 당신에게 완전한 해결책을주고 싶지는 않을 것입니다.

  • 관련 문제