Вывод кода Python - PullRequest
       10

Вывод кода Python

0 голосов
/ 11 января 2012

Я новичок в питоне. Вот мой код python, который отлично работает для всех входных данных, кроме

когда c = 0 и 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

1 Ответ

7 голосов
/ 11 января 2012

Вы сами раскрыли тайну (вроде):

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

r - это строка. Так что r всегда будет !=2, потому что "2" != 2 всегда верно. То же самое касается всех других сравнений.

Я предполагаю, что вы сначала получили TypeError с if r%2==0, поэтому вы изменили этот бит программы (также во всех других местах, где вы на самом деле выполняете вычисления со значениями), но пренебрегали этим понимание других частей программы.

Итак, сначала преобразуйте все свои входные данные в int с, затем начните применять логику вашей программы.

...