構(gòu)造程序邏輯
1. 尋找?仙花數(shù)吝羞。
說(shuō)明:?仙花數(shù)也被稱(chēng)為超完全數(shù)字不變數(shù)兰伤、?戀數(shù)、?冪數(shù)钧排、阿姆斯特朗數(shù)敦腔,它是?個(gè)3位
數(shù),該數(shù)字每個(gè)位上數(shù)字的??之和正好等于它本身恨溜,例如:$1^3 + 5^3+ 3^3=153$
for num in range(100, 1000):
low = num % 10
mid = num // 10 % 10
high = num // 100
if num == low ** 3 + mid ** 3 + high ** 3:
print(num)
正整數(shù)的反轉(zhuǎn)
num = int(input('num = '))
reversed_num = 0
while num > 0:
reversed_num = reversed_num * 10 + num % 10
num //= 10
print(reversed_num)
2. 百錢(qián)百雞問(wèn)題符衔。
說(shuō)明:百錢(qián)百雞是我國(guó)古代數(shù)學(xué)家張丘建在《算經(jīng)》?書(shū)中提出的數(shù)學(xué)問(wèn)題:雞翁?值錢(qián)
五,雞??值錢(qián)三糟袁,雞雛三值錢(qián)?判族。百錢(qián)買(mǎi)百雞,問(wèn)雞翁项戴、雞?形帮、雞雛各?何?翻譯成現(xiàn)代
?是:公雞5元?只,?雞3元?只沃缘,?雞1元三只躯枢,?100塊錢(qián)買(mǎi)?百只雞,問(wèn)公雞槐臀、?雞锄蹂、
?雞各有多少只?
for x in range(0, 20):
for y in range(0, 33):
z = 100 - x - y
if 5 * x + 3 * y + z / 3 == 100:
print('公雞: %d只, ?雞: %d只, ?雞: %d只' % (x, y, z))
CRAPS?稱(chēng)花旗骰水慨,是美國(guó)拉斯維加斯?常受歡迎的?種的桌上賭博游戲得糜。該游戲使
?兩粒骰?,玩家通過(guò)搖兩粒骰?獲得點(diǎn)數(shù)進(jìn)?游戲晰洒。簡(jiǎn)單的規(guī)則是:玩家第?次搖骰?如
果搖出了7點(diǎn)或11點(diǎn)朝抖,玩家勝;玩家第?次如果搖出2點(diǎn)谍珊、3點(diǎn)或12點(diǎn)治宣,莊家勝;其他點(diǎn)數(shù)玩
家繼續(xù)搖骰?砌滞,如果玩家搖出了7點(diǎn)侮邀,莊家勝;如果玩家搖出了第?次搖的點(diǎn)數(shù)贝润,玩家勝绊茧;其
他點(diǎn)數(shù),玩家繼續(xù)要骰?打掘,直到分出勝負(fù)华畏。
from random import randint
money = 1000
while money > 0:
print('你的總資產(chǎn)為:', money)
needs_go_on = False
while True:
debt = int(input('請(qǐng)下注: '))
if 0 < debt <= money:
break
first = randint(1, 6) + randint(1, 6)
print('玩家搖出了%d點(diǎn)' % first)
if first == 7 or first == 11:
print('玩家勝!')
money += debt
elif first == 2 or first == 3 or first == 12:
print('莊家勝!')
money -= debt
else:
needs_go_on = True
while needs_go_on:
needs_go_on = False
current = randint(1, 6) + randint(1, 6)
print('玩家搖出了%d點(diǎn)' % current)
if current == 7:
print('莊家勝')
money -= debt
elif current == first:
print('玩家勝')
money += debt
else:
needs_go_on = True
print('你破產(chǎn)了, 游戲結(jié)束!')
1. ?成斐波那契數(shù)列的前20個(gè)數(shù)。
a =0
b =1
for _in range(20):
a, b = b, a + b
print(a, end=' ')
2. 找出10000以?xún)?nèi)的完美數(shù)尊蚁。
for i in range(1,10000):
? ? a=0
? ? for j in range(1,i-1):
? ? ? ? if i%j==0:
? ? ? ? ? ? a+=j?
? ? if a==i:
? ? ? ? print(i)? ? ? ?
3. 輸出100以?xún)?nèi)所有的素?cái)?shù)
for i in range(2,100):
? ? needs=True
? ? for j in range(2,i-1):
? ? ? ? if i%j==0:
? ? ? ? ? ? needs = False
? ? ? ? ? ? break
? ? if needs:
? ? ? ? print(i,end=' ')