演算法題 整理--- 不定時更新
阿新 • • 發佈:2020-11-19
輸入指定年月日,判斷這一天是這一年中的第幾天?(可區分平年,閏年)
# 方法一 import datetime while 1: year = int(input("請輸入年份:\n")) month = int(input("請輸入月份:\n")) day = int(input("請輸入當月哪一天:\n")) targetDay = datetime.date(year, month, day) dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31) print("%s是%s年的第%s天." % (targetDay, targetDay.year, dayCount)) # 方法二 year = int(input("年:")) while True: month = int(input("月:")) if 1 <= month <= 12: while True: day = int(input("日:")) days = 0 months_1 = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] months_2 = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0): if 1 <= day <= months_2[month]: for i in range(month): days += months_2[i] days += day print("%d年%d月%d日 是%d年的第%d天" % (year, month, day, year, days)) break else: print("請輸入正確的日期!") else: if 1 <= day <= months_1[month]: for i in range(month): days += months_1[i] days += day print("%d年%d月%d日 是%d年的第%d天" % (year, month, day, year, days)) break else: print("請輸入正確的日期!") break else: print("請輸入正確的月份!")
二分查詢
def binary_search(my_list, num): low = 0 high = len(my_list) - 1 while low <= high: mid = int((low + high) / 2) guess = my_list[mid] if guess == num: return mid elif guess > num: # 說明猜大了 high = mid - 1 else: low = mid + 1 return None def main(): """主函式""" my_list = [1, 3, 5, 7, 9] # 有序列表 num = 5 # 要猜測的數字 print(binary_search(my_list, num)) if __name__ == '__main__': main()
待更新 ~ ~ ~
······