day05-code2

1.一張紙的厚度大約是0.08mm,對折多少次之后能達(dá)到珠穆朗瑪峰的高度(8848.13米)?
a = 0.08
high = 8848130
i = 1
while True:
    a *= 2   # 每次紙張高度*2
    if a > high:
        break
        pass
    else:
        i += 1
        pass
    pass
print(i)
print(0.08 * 2 ** 27)
2. 古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?
# 1 1 2 3 5 8 13 21 34
n = int(input("請輸入查詢幾個月:"))
count = 0
num_2 = 0
num_1 = 1
if n <= 0:
    print(0)
    pass
elif n == 1:
    print(1)
    pass
elif n > 1:
    for i in range(n):
        num_2 = num_1
        num_1 = count
        count = num_1 + num_2
        print("第%d個月總數(shù)為:"%(i + 1), count)
        pass
    pass
3. 將一個正整數(shù)分解質(zhì)因數(shù)。

例如:輸入90,打印出90=2x3x3x5

num = int(input("請輸入一個數(shù):"))
m = num  # 循環(huán)中會改變num的值,存取一個num值
nums = []  # 用來存因數(shù)
if num == 1:  # 1的質(zhì)因數(shù)為1
    print("1 = 1 x 1")
    pass
else:
    while num > 1:  # 輸入的數(shù) > 2
        for i in range(2, num + 1):  # 從2 - num 遍歷
            if num % i == 0:   # 取因數(shù)
                num //= i      # 取出最小因數(shù)
                nums.append(str(i))  # 將因數(shù)放入列表,并轉(zhuǎn)化為字符型,便于字符串拼接
                break
                pass
            pass
    if len(nums) == 1:  # 如果因數(shù)列表長度為1 ,代表只有一個質(zhì)因數(shù)
        print(m, '=', '1 x', m)
        pass
    else:                   # 質(zhì)因數(shù)個數(shù) > 2
        s = ' x '.join(nums)  # 字符串拼接為乘法式子
        print(m, '=', s)
        pass
    pass
4. 輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。 程序分析:利用輾除法。
m = int(input("輸入第一個數(shù):"))
n = int(input("輸入第二個數(shù):"))
b = 0 # 定義一個較大的數(shù)
s = 0 # 定義一個較小的數(shù)
# 如果m>n :b = m,s=n;如果n<m:b = n,s = m
if m > n :
    b = m
    s = n
    pass
else:
    b = n
    s = m
    pass
for i in range(b, 0, -1):  # 從大到小遇到同時能整除m,n的數(shù)為最大公約數(shù)
    if m % i == 0 and n % i == 0:
        print("最大公約數(shù)是:", i)
        break
        pass
    pass
for i in range(s, n * m + 1, 1):  # 從小到大,遇到能同時被m,n整除的數(shù)即最小公倍數(shù)
    if i % m == 0 and i % n == 0:
        print("最小公倍數(shù)是:", i)
        break
        pass
    pass
5. 一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為 "完數(shù) "。

例如6=1+2+3. 編程 找出1000以內(nèi)的所有完數(shù)

for i in range(1, 1000):
    sum = 0
    for j in range(1, i):
        if i % j == 0:  # 求出所有因數(shù)
            sum = sum + j
    if i == sum:
        print(i)
6.輸入某年某月某日,判斷這一天是這一年的第幾天?

程序分析:以3月5日為例,應(yīng)該先把前兩個月的加起來,然后再加上5天即本年的第幾天,
特殊情況,閏年且輸入月份大于3時需考慮多加一天。

year = int(input("輸入年份:"))
month = int(input("輸入月份:"))
day = int(input("輸入日:"))
run_years = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
ping_years = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 閏年 2月多一天  29天
# 平年 2月少一天 28天
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
# 閏年    
sum1 = 0
    for i in range(month - 1):
        sum1 += run_years[i]
    day += sum1
else:
# 平年
    sum1 = 0
    for i in range(month - 1):
        sum1 += ping_years[i]
    day += sum1
print(day)
7. 某個公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過程中是加密的,加密規(guī)則如下:每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。求輸入的四位整數(shù)加密后的值
key_word = []
for i in range(4):
    key_word.append(int(input("請輸入第%d個數(shù):"%(i + 1))))
    key_word[i] += 5
    key_word[i] %= 10
print(key_word)
key_word[0], key_word[1],key_word[2], key_word[3] = key_word[3], key_word[2],key_word[1],key_word[0]
print(key_word)
8. 獲取第n個丑數(shù)。 什么是丑數(shù): 因子只包含2,3,5的數(shù)
# 6 =1* 2*3  -> 丑數(shù)
# 2 = 1*2  -> 丑數(shù)
# 7 = 1*7 -> 不是丑數(shù)
# 1, 2, 3, 4, 5, 6, 8,9,10, 12 ….
n = int(input("輸入:"))
# 講數(shù)字中的所有2,3,5除去
while n % 2 ==0 or n % 3 == 0 or n % 5 == 0:
    if n % 2 == 0:
        n //= 2
    if n % 3 == 0:
        n //= 3
    if n % 5 == 0:
        n //= 5
# 除剩下的數(shù)如果不是:1,2,3,5就不是丑數(shù)
if n != 1 and n != 2 and n != 3 and n != 5:
    print("不是丑數(shù)!")
else:
    print("是丑數(shù)!")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.一張紙的厚度大約是0.08mm,對折多少次之后能達(dá)到珠穆朗瑪峰的高度(8848.13米)? 古典問題:有一對兔...
    坐等抱大腿的鬼鬼閱讀 62評論 0 0
  • 1.一張紙的厚度大約是0.08mm,對折多少次之后能達(dá)到珠穆朗瑪峰的高度(8848.13米)? 古典問題:有一對兔...
    oct___d38e9閱讀 154評論 0 0
  • 50道經(jīng)典Java編程練習(xí)題,將數(shù)學(xué)思維運(yùn)用到編程中來。抱歉哈找不到文章的原貼了,有冒犯的麻煩知會聲哈~ 1.指數(shù)...
    OSET我要編程閱讀 7,288評論 0 9
  • 1一張紙的厚度大約是0.08mm,對折多少次后能到達(dá)珠穆朗瑪峰的高度(8838.13m) 2.古典問題:有一對兔子...
    PonesRyang閱讀 137評論 0 0
  • 1.一張紙的厚度大約是0.08mm,對折多少次之后能達(dá)到珠穆朗瑪峰的高度(8848.13米)? 2. 古典問題:有...
    劉茂森閱讀 184評論 0 0

友情鏈接更多精彩內(nèi)容