2012-01-11 3 views
-1

나는 파이썬에서 새로운 편이다. 다음은 030과 r! = 0 일 때파이썬 코드 출력

을 제외한 모든 입력에 대해 잘 작동하는 파이썬 코드입니다.

필자는 조건에 따라 필요한 출력을 제공하는 입력으로 테스트 케이스 (tc), r 및 c의 수를가집니다.

질문 - 입력 r = 4 & c = 0 인 경우 출력은 2이지만 출력은 1이됩니다. 나는 모든 r! = 0 & c = 0에 대해 잘못된 대답을 얻고 있습니다.

코드 :

tc=int(input()) 
while tc: 
    r,c=raw_input().split() 
    if int(r)%2==0 and r!=2 and r!=0 and c!=0: 
     r=int(r)/2 
    elif r!=2 and r!=0 and c!=0: 
     r=int(r)/2+1 
    elif r==0 or r ==2: 
     r=1 
    if r!=0: 
     if int(c)!=0: 
      print(int(r)*int(c)) 
     else : 
      if int(r)%2==0 : 
       print(int(r)/2) 
      else: 
       r=int(r)/2+1 
       print(r) 
    else : 
     print(c); 
    tc=tc-1 

샘플 입력과 (가지) 당신은 신비를 직접 해결 한 출력

4   //tc 
10 10  //r=10 c= 10 
50  //fine 
3 3  //r=3 c=3 
6   //fine 
4 0  //r=4 c=0 
1   //Should be 2 accoring to code 
5 0  //r=5 c=0 
2  //Output should be 3 accoring to the code 
+2

수행해야 할 코드는 무엇입니까? – Kimvais

+0

들여 쓰기를 수정하십시오. 'while' 루프가 어디에서 끝나는 지 알 수 없습니다. –

답변

7

:

if int(r)%2==0 and r!=2 and r!=0 and c!=0: 

r은 문자열입니다. 따라서 "2" != 2이 항상 true이기 때문에 r은 항상 !=2입니다. 다른 모든 비교에 대해서도 동일합니다.

처음에는 을 if r%2==0으로 추측 했으므로 프로그램의 비트를 변경 했으므로 (실제로 값을 계산하는 다른 모든 장소에서도)이 통찰력을 프로그램의 다른 부분들.

먼저 모든 입력을 int으로 변환 한 다음 프로그램 논리를 적용하십시오.

+0

출력 r = 100 및 c = 0 확인, 50 대신 25 제공합니다 – anil

+0

코드를 수정 했습니까? –

+0

알겠습니다, 선생님, 처음부터 r과 c를 int로 변환하면 고맙습니다. – anil