亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python:Project Euler 145

Python:Project Euler 145

森林海 2021-03-22 21:18:49
我今天的問題是,我是否沿著正確的歐拉145道路行駛,并且是否有點效率。我的大部分精力都在下降,只有我的一個Defs給我帶來了麻煩:int(str(numb)[:i])%2 == 0進行均勻檢查。我的代碼如下。第10行是問題點def reversed(reg): # to flip the number around    fliped = str(reg)[::-1];    return(int(fliped)); # Return it as a int. def allEvenDigits(numb): # This is the issue one    hasEvenNumb = False;    for i in range(0, len(str(numb))):        if int(str(numb)[:i])%2 == 0:  # if int of the string numb's char at i is even            hasEvenNumb = True; ## return that it is true            break; # why go on if we found a even.     return(hasEvenNumb);for i in range(1, 1000): # its 1000 to save a few minutes    revNumb = reversed(i);    total = revNumb+i;    if(allEvenDigits(total)):        print(i, "+" , revNumb, "=",Total);
查看完整描述

3 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

def sumrevers(x):

    summation = x + int(str(x)[::-1])

    if summation % 2 != 0: return summation



def checknum(x):

    if not (str(x)[-1] == "0") or (str(x)[0] == "0"):

        if type(sumrevers(x)) == int:

            num = str(sumrevers(x))

            checklis = [k for k in str(num)]

            if all(int(i) % 2 != 0 for i in checklis): return True



cnt = 0

for i in xrange(1, 1000000001):

    if checknum(i):

        cnt += 1

print cnt


查看完整回答
反對 回復 2021-03-23
  • 3 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號