python算法題_python基本算法題(一)

1、3位水仙花數計算

"3位水仙花數”是指一個三位整數,其各位數字的3次方和等于該數本身。

例如:

ABC是一個“3位水仙花數”,則:A的3次方+B的3次方+C的3次方 = ABC。

使用Python,輸出所有的3位水仙花數。

>>> for i in range(100,1000):if pow(i // 100 , 3) + pow(i % 10 , 3) + pow(i // 10 % 10, 3) ==i:print(i,end=" ")

>>> 153 370 371 407

Process finished with exit code 0

水仙花數是指一個 3 位數,它的每個位上的數字的 3次冪之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。與水仙花數類似

同樣的,與水仙花數相似,回文數的判斷方法也是采取相應的方式

2、回文數的判斷

“回文”是指正讀反讀都能讀通的句子。在數學中也有這樣一類數字有這樣的特征,稱為回文數,例如121,25852等等

n=input("請輸入一個數字:")if n == n[::-1]:print("你輸入的數字是回文數")else:print("你輸入的數字不是回文數")

這里是根據回文數的特性:回文數和本身顛倒的數相等,來進行判斷的

3、使用Python判斷是否為閏年

判斷任意年份是否為閏年,需要滿足以下條件中的任意一個:

① 該年份能被 4 整除同時不能被 100 整除;

② 該年份能被400整除。

由于滿足閏年的條件互相有關聯,所以可以使用條件語句來實現,判斷輸入的年份是否為閏年

defleap(a):if a % 4 ==0:if a % 400 ==0:returnTrueelif a % 100 ==0:returnFalseelse:returnTrueelse:returnFalse

n=int(input())if leap(n) ==True:print("{}年是閏年".format(n))else:print("{}年不是閏年".format(n))

4、快樂的數字

首先是一個快樂的數字的定義:

快樂的數字按照如下方式確定:從一個正整數開始,用其每位數的平方之和取代該數,并重復這個過程,直到最后數字要么收斂等于1且一直等于1,要么將無休止地循環下去且最終不會收斂等于1。能夠最終收斂等于1的數就是快樂的數字。使用Python編寫一個算法來確定一個數字是否“快樂”

例如數字 19 就是一個快樂的數字,計算過程如下:????????????????????????????????????????????????????????????????????????????????????????????????

12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1 (最終收斂為1)

這里經過了分析,得出了,當循環到數字4時,那么這個數字一定不是快樂數,所以可以得出條件。設置一個循環,當循環到1(快樂數)或者4(不是快樂數)時,就終止循環,得出結果是否為快樂數

def getSumofSquares(num): #快樂數判斷

numStr=str(num)

sum=0for i innumStr:

sum+= int(i)**2

returnsum

n=input()

sumofSqrs=eval(n)while sumofSqrs != 1 and sumofSqrs != 4:

sumofSqrs=getSumofSquares(sumofSqrs)else:if sumofSqrs == 1:print("True")else:print("False")

5、括號配對檢測

用戶輸入一行字符串,其中可能包括小括號 (),請檢查小括號是否配對正確(本題僅限于小括號)

defmatch_parentheses(s):#把一個list當做棧使用

ls =[]

parentheses= "()"

for i inrange(len(s)):

si=s[i]#如果不是括號則繼續

if parentheses.find(si) == -1:continue

#左括號入棧

if si == '(':

ls.append(si)continue

if len(ls) ==0:returnFalse#出棧比較是否匹配

p =ls.pop()if p == '(' and si == ')':continue

else:returnFalseif len(ls) >0:returnFalsereturnTrue

n=input()

result=match_parentheses(n)if result==True:print("配對成功")else:print("配對不成功")

這里是使用list來代替棧的作用,來完成括號匹配的功能

括號匹配問題(所有的括號)算法:

首先設置兩個列表分別存放的是各種括號的開括號和閉括號,然后遍歷給定的字符串,分如下幾種情況:

1.字符串 首字符 出現在閉括號列表中,直接結束,輸出錯誤

2.字符串長度不為偶數,直接結束,輸出錯誤

3.對原始字符串列表化去重,如果去重后的列表長度不為偶數直接結束,輸出錯誤

4.遍歷字符串,將屬于開括號集合的括號加入到列表中,當遇上一個閉括號的時候計算該閉括號在閉括號列表中的索引與

當前列表最后一個開括號在開括號列表中的索引是否一致,一致則繼續,否則直接結束,輸出錯誤

defbracket_mathch(one_str):

tmp_list=[]

open_bracket_list= ['(', '[', '{', '<', '《']

close_bracket_list= [')', ']', '}', '>', '》']

one_str_list=list(one_str)

length=len(one_str_list)

set_list=list(set(one_str_list))

num_list= [one_str_list.count(one) for one inset_list]if one_str[0] inclose_bracket_list:returnFalseelif length % 2 !=0:returnFalseelif len(set_list) % 2 !=0:returnFalseelse:for i inrange(length):if one_str[i] inopen_bracket_list:

tmp_list.append(one_str[i])elif one_str[i] inclose_bracket_list:if close_bracket_list.index(one_str[i]) == open_bracket_list.index(tmp_list[-1]):

tmp_list.pop()else:returnFalsebreak

returnTrue

one_str_list= ['({}', '({[<>]})', '[(){}', '{{{{{', '([{})', '}{[)]']for one_str inone_str_list:ifbracket_mathch(one_str):print(one_str, '括號匹配正確')else:print(one_str, '括號匹配錯誤')

注:這里僅支持輸入純括號,并對其進行括號匹配判斷,沒有實現括號+字符串的括號匹配

6、天天向上的力量

一年365天,以第一天的能力為基數,記為1.0,當好好學習時能力值相比前一天提高1‰,當沒有學習時能力值相比前一天下降1‰。

每天努力和每天放任,一年下來的能力值相差多少呢?

importmath

dayup= math.pow((1.0+0.001),365) #每天提高

daydown = math.pow((1.0-0.001),365) #每天下降

print("每天提高:{:.2f},每天懈怠:{:.2f}".format(dayup,daydown))

>>> 每天提高:1.44,每天懈怠:0.69

這是很基礎的一個調用math庫函數的題,然后使用格式化輸出。

可以看出,經過1年的時間,每天提高一點點竟然達到了 1.69 !!這說明天天向上的力量不可小覷。所以從每天做起,每天改變一點點,日積月累,就會獲得巨大的改變。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259016.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259016.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259016.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

虛擬機環境下安裝ESX不能安裝虛擬系統解決方案

在虛擬機環境&#xff08;ESX、workstation等&#xff09;下安裝ESX或workstation等虛擬機&#xff0c;在虛擬機上再安裝操作系統&#xff0c;會提示“虛擬系統不能啟動&#xff0c;直到你配置了外部虛擬機&#xff08;vmware esx in a virtual machine requires the outer vir…

superviseddescent (SDM C++11實現)環境配置

今天試著用了一下SDM的C11實現&#xff0c;本來以為挺簡單的&#xff0c;可是配置環境還是花了一些時間。為了給自己留下一些記憶&#xff0c;特把配置過程記錄下來。 這個實現是C11的版本&#xff0c;是一個通用版本&#xff0c;里面包含了很多的功能&#xff0c;比如函數的最…

1008: University

臺州ACM&#xff1a;1008: University Description 在大學里&#xff0c;非常多單詞都是一詞多義。偶爾在文章里還要用引申義。這困擾Redraiment非常長的時間。 他開始搜集那些單詞的全部意義。他發現了一些規律&#xff0c;比如 “a”能用“e”來取代, “c”能用“f”來取代……

Android 5.1 API 22 所有sdk文件下載地址

開源中國的 IT 公司開源軟件整理計劃介紹 https://dl-ssl.google.com/android/repository/docs-22_r01.ziphttp://dl.google.com/android/repository/android-22_r01.ziphttps://dl-ssl.google.com/android/repository/samples-22_r05.ziphttps://dl-ssl.google.com/android/re…

python圖形小游戲代碼_手把手制作Python小游戲:俄羅斯方塊(一)

手把手制作Python小游戲&#xff1a;俄羅斯方塊1大家好&#xff0c;新手第一次寫文章&#xff0c;請多多指教 A.準備工作&#xff1a; 這里我們運用的是Pygame庫&#xff0c;因為Python沒有內置&#xff0c;所以需要下載 如果沒有pygame&#xff0c;可以到官網下載 pygame官網&…

關于Git使用的一些心得

2019獨角獸企業重金招聘Python工程師標準>>> 本篇稍微記錄下Git使用的一些心得。 對Git的使用&#xff0c;應該是從搭建自己的博客開始的。當時看到開源中國推薦的一篇基于碼云hexo搭建自己博客的文章。所以就花了一天時間鼓搗了下博客。 順帶整理下目前能看到我寫的…

Dlib機器學習庫安裝

昨天使用了一下dlib的人臉檢測功能&#xff0c;效果出奇的好。下面給出dlib整個的安裝過程和使用指導。 下載安裝 我們可以從dlib的官網下載最新的版本&#xff0c;我的是dlib18.18.然后我們需要使用cmake編譯dlib庫和examples示例。 當然前提是你要按照好cmake和opencv。 …

struts2上傳

今天在使用struts2上傳的過程中無意發現,struts2上傳一個文件大小為0字節的文本竟然會報錯FileNotFoundException,嘗試了好久也沒找到答案,最后只能判斷文件的大小后上傳,至于文件字節為0的怎么處理就看各位了 struts2上傳java源碼 1 package com.jzgx.web.action;2 3 import j…

BitSet之為什么用long保存信息

BitSet內部使用long[] words來保存位信息。咋看之下并不理解原因&#xff0c;在解讀set(int bitIndex)之后似乎有了一些領悟。 public void set(int bitIndex) { if (bitIndex < 0) throw new IndexOutOfBoundsException("bitIndex < 0: " bitIndex); //用來計…

ipv4地址是幾位二進制數_幾張思維導圖,讓你清楚的知道ip地址怎么回事?

網絡工程中&#xff0c;ip地址是必須要了解的內容&#xff0c;今天我們用幾張思維導圖來給大家詳細講解IP地址。一、什么是IP地址在生活中我們使用具有上網功能的電子設備都有IP地址&#xff0c;就跟每個人都有自己的名字一樣。IP地址分為IPV4 IPV6&#xff0c;我們所說的的IP地…

《關系營銷2.0——社交網絡時代的營銷之道》一檢查拼寫和語法

本節書摘來異步社區《關系營銷2.0——社交網絡時代的營銷之道》一書中的第2章&#xff0c;作者&#xff1a; 【美】Mari Smith 譯者&#xff1a; 張猛 , 于宏 , 趙俐 責編&#xff1a; 陳冀康, 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 檢查拼寫和語法 關系營銷2…

dlib人臉檢測功能介紹

本文主要介紹三個點&#xff1a; 1. 如何單獨建立一個工程&#xff0c;使用dlib的人臉檢測功能。 2. 提高人臉檢測率的兩個方法 3. 加速人臉檢測的方法 下面圍繞這幾個點展開敘述。 建人臉檢測工程 1 . 首先我們先使用上期說的examples里的人臉檢測。 我們只要將face_de…

ios網絡開發 網絡狀態檢查

http://www.cnblogs.com/hanjun/archive/2012/12/01/2797622.html 網絡連接中用到的類&#xff1a; 一.Reachability 1.添加 Reachability 的.h和.m文件&#xff0c;再添加SystemConfiguration.framework。 2.Reachability中定義了三種網絡狀態&#xff1a; typedef Num{ NotR…

delphi xe4 ini文件不能讀取的解決方法

今天發現用inifiles下 tinifile.readstring方法突然不能讀數據了&#xff0c;結果把ini文件格式由utf-8改成unicode后就能正常讀取了。轉載于:https://www.cnblogs.com/liqiao/p/3503985.html

《眾妙之門——網頁排版設計制勝秘訣》——3.4 展現品牌視覺的同時保持網頁的可讀性...

本節書摘來自異步社區《眾妙之門——網頁排版設計制勝秘訣》一書中的第3章&#xff0c;第3.4節&#xff0c;作者&#xff1a; 【德】Smashing Magazine 譯者&#xff1a; 侯景艷 , 范辰 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 3.4 展現品牌視覺的同時保持網頁的…

vs2013創建及使用DLL

這幾天看了許多關于生成Dll的博文&#xff0c;很有感觸&#xff0c;遂整理在此&#xff0c;以供自己后續參考。 VS2013創建DLL 我們使用vs2013來生成Dll&#xff0c;其實使用其他的版本也是同理如此。步驟如下&#xff1a; 單擊“新建項目”&#xff0c;選擇“Win32 項目”&a…

python的作用域分別有幾種_python中作用域與函數嵌套

知識回顧&#xff1a; 拆解傳參。 1.字典傳參。使用** 2.列表傳參。使用* 實際上我們在定義函數的時候&#xff0c;如果省略了星號&#xff0c;那么在調用函數的時候必須要省略星號&#xff0c;除非我們拆解后的參數個數剛好相等。 視頻內容 本節知識視頻教程 文字講解開始&…

這個博客的由來

筆者從事電信行業大型商業智能系統工作多年&#xff0c;日前從事B2C電商網站類數據分析工作&#xff0c;特開設此微博&#xff0c;在發表好文同時&#xff0c;研究網站分析技術。轉載于:https://www.cnblogs.com/sambazhu/p/3508633.html

《Axure RP8 網站和APP原型制作 從入門到精通》一2.7 交付

本節書摘來自異步社區《Axure RP8 網站和APP原型制作 從入門到精通》一書中的第2章&#xff0c;第2.7節&#xff0c;作者 金烏&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看 2.7 交付 模型一旦經過批準&#xff0c;我們就可以進入切圖和優化圖像環節了。我…

iOS UISegmentedControl 的使用

當用戶輸入不僅僅是布爾值時&#xff0c;可使用分段控件&#xff08;UISegmentedControl&#xff09;。分段控件提供一欄按鈕&#xff08;有時稱為按鈕欄&#xff09;&#xff0c;但只能激活其中一個按鈕。分段控件會導致用戶在屏幕上看到的內容發生變化。它們常用于在不同類別…