#26362: Python 如果不用建表,是不是一定超時?


1234567weewee457@gmail.com (weewee4571234567)


def check(m):

    if m<=0:

        return 0

    while m!=1:

        if m%2!=0:

            return 0

        m /= 2

    return 1

 

while 1:

    try:

        a=int(input())

        if check(a):

            print("Yes")

        else:

            print("No")

    except EOFError:

        break

 

#26378: Re:Python 如果不用建表,是不是一定超時?


406490150@gms.tku.edu.tw (我是朱朱)


def check(m):

    if m<=0:

        return 0

    while m!=1:

        if m%2!=0:

            return 0

        m /= 2

    return 1

 

while 1:

    try:

        a=int(input())

        if check(a):

            print("Yes")

        else:

            print("No")

    except EOFError:

        break

 


我覺得你說的沒錯,如果從str轉int應該就要很花時間,所以應該還是要用 a in set() 類似這種O(1)查表才可以吧?

#26402: Re:Python 如果不用建表,是不是一定超時?


1234567weewee457@gmail.com (weewee4571234567)


def check(m):

    if m<=0:

        return 0

    while m!=1:

        if m%2!=0:

            return 0

        m /= 2

    return 1

 

while 1:

    try:

        a=int(input())

        if check(a):

            print("Yes")

        else:

            print("No")

    except EOFError:

        break

 


我覺得你說的沒錯,如果從str轉int應該就要很花時間,所以應該還是要用 a in set() 類似這種O(1)查表才可以吧?


好吧,反正python本來就不適合跑速度的