第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Project Euler 的 3 和 5 的倍數(shù)

Project Euler 的 3 和 5 的倍數(shù)

湖上湖 2022-10-06 18:46:30
我只是試圖解決Project Euler 中的問題 1,但我不明白為什么這段代碼不起作用并且輸出答案是錯誤的。問題- 如果我們列出所有低于 10 且是 3 或 5 的倍數(shù)的自然數(shù),我們得到 3、5、6 和 9。這些倍數(shù)之和為 23。求 1000 以下所有 3 或 5 的倍數(shù)之和.正確答案 =233168我的輸出 =266333a = 0for x in range(0,1000,3):    a = a + xfor x in range(0,1000,5):    a = a + xprint(a) 
查看完整描述

3 回答

?
慕田峪4524236

TA貢獻1875條經(jīng)驗 獲得超5個贊

歐拉計劃 #1

def f(x):                               

    n1, n2, n3 = x//3, x//5, x//15

    return 3*(n1)*(n1+1)//2+5*(n2)*(n2+1)//2-15*(n3)*(n3+1)//2

for i in range(int(input())):                  

    print(f(int(input())-1))

這里x//3給出了int(x/3)類似的 forx//5x//15

作為LCM(3,5)=15

Σi = n(n+1)/2

答案= 3 的倍數(shù)之和 + 5 的倍數(shù)之和 - 15 的倍數(shù)之和。

對應于 ProjectEulerProblem #1 的解決方案

  • 注意:我在 StackOverflow 上分享代碼的目的是讓人們知道給定問題可以通過多種方式解決。

    由于 timeError,一個人總是很難通過所有案例。

不要用作答案,但要學習。


查看完整回答
反對 回復 2022-10-06
?
慕的地8271018

TA貢獻1796條經(jīng)驗 獲得超4個贊

您多算了 15 的倍數(shù)。解決此問題的一種方法是只使用一個循環(huán)來檢查數(shù)字是 3 還是 5 的倍數(shù)。


solution = 0

for i in range(1000):

    if i % 3 == 0 or i % 5 == 0:

        solution += i

print(solution)


查看完整回答
反對 回復 2022-10-06
?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

Devesh Kumar Singh評論解決了這個問題:

因為您將 3 和 5 的倍數(shù)計算兩次,例如15. 添加一個循環(huán)來減去這些值,例如for x in range(0,1000,15): a = a - x


查看完整回答
反對 回復 2022-10-06
  • 3 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號