python基礎小白題2

題目11:判斷101-200之間有多少個素數,并輸出所有素數。

?

num=[]

for i in range(100,201):

? ? j=i//2 ? ? ? ? ? ? ?

? ? for k in range(2,j):

? ? ? ? if i%k==0:

? ? ? ? ? ? break

? ? else:

? ? ? ? num.append(i)

print('一共有%d個素數\n這些素數是:' %len(num),num )

輸出結果:

一共有21個素數

這些素數是: [101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]

題目12:打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數字本身。例如:153=1的三次方+5的三次方+3的三次方。

?

num=[]

def cubic_sum(n):

? ? return n*n*n

for i in range(100,1000):

? ? i_hun=i//100 ? ? ? ? ? ? ? ? ?#百位

? ? i_ten=(i%100)//10 ? ? ? ? ? ? #十位

? ? i_bit=i-i_hun*100-i_ten*10 ? ?#個位

? ? i_sum=cubic_sum(i_bit)+cubic_sum(i_ten)+cubic_sum(i_hun)

? ? if i_sum==i:

? ? ? ? num.append(i)

print(num)

輸出結果:

[153, 370, 371, 407]

題目13:講一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。

?

num=[] ? ? ? ? ? ? ? ? ?#該數字的所有素數

fac_num=[] ? ? ? ? ? ? ?#該數字的因數

def pri_num(val): ? ? ? #求出該數字的所有素數

? ? for i in range(2,val):

? ? ? ? if i<=4:

? ? ? ? ? ? j=i

? ? ? ? else:

? ? ? ? ? ? j=i//2 ? ? ? ? ? ? ?

? ? ? ? for k in range(2,j):

? ? ? ? ? ? if i%k==0:

? ? ? ? ? ? ? ? break

? ? ? ? else:

? ? ? ? ? ? num.append(i)

def sol_factor(val,*k): ? #求因數

? ? for i in k: ? ? ? ? ? #遍歷素數

? ? ? ? if val%i==0:

? ? ? ? ? ? return i

? ? ? ? ? ? break

input_num=int(input('請輸入要分解的數:'))

pri_num(input_num) ? ? ? ? ? ? ? #求出該數字的所有素數

decom_num=input_num ? ? ? ? ? ? ?#要分解的數

while True:

? ? res=sol_factor(decom_num,*num)

? ? if res==decom_num: ? ? ? ? ? #遍歷結束

? ? ? ? fac_num.append(str(res))

? ? ? ? break

? ? else:

? ? ? ? fac_num.append(str(res))

? ? ? ? decom_num= decom_num/res

print(input_num,'=','*'.join(fac_num))#分解后的表達式

輸出結果:

? 請輸入要分解的數:180

? 180 = 2*2*3*3*5

? 請輸入要分解的數:900

? 900 = 2*2*3*3*5*5

題目14:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。

?

score=int(input('請輸入分數:').strip())

if score < 0 ?or score>100:

? ? print('輸入的分數不合理,請重新輸入')

elif score >= 90:

? ? print('該同學得A')?

elif score >=60 and score<90:

? ? print('該同學得B')

else:

? ? print('該同學得C')

題目15:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。

?

input_str=input('請輸入要統計的字符串:')

count_str={}

for i in input_str:

? ? if i in count_str:

? ? ? ? count_str[i] +=1

? ? else:

? ? ? ? count_str[i] =1

print(count_str)

輸出結果:

? 請輸入要統計的字符串:kahgasodgh934q455t

{'o': 1, 't': 1, '4': 2, 'q': 1, 'h': 2, '5': 2, 'd': 1, '3': 1, '9': 1, 's': 1, 'a': 2, 'g': 2, 'k': 1}

題目16:求s=a+aa+aaa+aaaa+aa..a的值,其中a是一個數字。例如:2+22+222+2222+22222(此時公有五個數相加),幾個數相加由鍵盤控制。

?

def sum_num(num,dig_num):

? ? var=0

? ? for i in range(dig_num):

? ? ? ? var +=int((num*(i+1)))

? ? ? ? if i==(dig_num-1):

? ? ? ? ? ? print(int((num*(i+1))),end='=') ? #整數乘字符 ?,'3'*3='333'

? ? ? ? else:

? ? ? ? ? ? print(int((num*(i+1))),end='+')

? ? return var

? ? ? ? ?

? ? ? ? ?

num=input('請輸入要計算的數字:') ? ? ? ? #字符類型

dig_num=int(input('請輸入要計算的次數:'))#整數類型

sum_dig=sum_num(num,dig_num)

print(sum_dig)

輸出結果:

? 請輸入要計算的數字:1

? 請輸入要計算的次數:3

? 1+11+111=123

? 請輸入要計算的數字:2

? 請輸入要計算的次數:5

? 2+22+222+2222+22222=24690

題目17:一個數如果恰好等于它的因子之和,這個數成為“完數”、例如6=1+2+3.編寫程序找出1000以內所有的完數。

?

def pri_num(val): ? ? ? ? ?#求出該數字的所有素數

? ? for i in range(2,val+1):

? ? ? ? if i<=4:

? ? ? ? ? ? j=i

? ? ? ? else:

? ? ? ? ? ? j=i//2 ? ? ? ? ? ? ?

? ? ? ? for k in range(2,j):

? ? ? ? ? ? if i%k==0:

? ? ? ? ? ? ? ? break

? ? ? ? else:

? ? ? ? ? ? num.append(i)

def sol_factor(val,*k): ? ?#求因數

? ? for i in k: ? ? ? ? ? ? #遍歷素數

? ? ? ? if val%i==0:

? ? ? ? ? ? return i

? ? ? ? ? ? break

? ? else:

? ? ? ? return 1

for input_num in range(2,1000):

? ? sum_num=1

? ? num=[] ? ? ? ? ? ? ? ? ?#該數字范圍內的所有素數

? ? fac_num=[] ? ? ? ? ? ? ?#該數字的因數

? ? pri_num(input_num) ? ? ?#求出該數字的所有素數

? ? decom_num=input_num ? ? #要分解的數

? ? while True:

? ? ? ? res=sol_factor(decom_num,*num)

? ? ? ? if res==decom_num: ? ? ? ? ? #遍歷結束

? ? ? ? ? ? sum_num +=res

? ? ? ? ? ? fac_num.append(str(res))

? ? ? ? ? ? break

? ? ? ? else:

? ? ? ? ? ? sum_num +=res

? ? ? ? ? ? fac_num.append(str(res))

? ? ? ? ? ? decom_num= decom_num/res

? ? if sum_num==input_num:

? ? ? ? print(input_num,'=1+','+'.join(fac_num)) #分解后的表達式

輸出結果:

? 6 =1+ 2+3

題目18:一個球從100米高度自由下落,每次落地后跳回原高度的一半;再落地,求它在第10次落地時,共經過過少米?第10次反彈多高?

?

high=100

sum_meter=0

for i in range(10):

? ? if i==0: ? ? ? ?#第一次落地

? ? ? ? sum_meter +=high

? ? ? ? high /=2

? ? else:

? ? ? ? sum_meter += (2*high)

? ? ? ? high /=2

# ? ? print('第%d次落地可以反彈的高度: %f' %((i+1),high))

# ? ? print('第%d次落地經過了%f米' %((i+1),sum_meter))

print('----------------------------------')

print('第10次落地可以反彈的高度: %f米' %(high))

print('一共經過了%f米' %(sum_meter))

輸出結果:

? 第1次落地可以反彈的高度: 50.000000

? 第1次落地經過了100.000000米

? 第2次落地可以反彈的高度: 25.000000

? 第2次落地經過了200.000000米

? 第3次落地可以反彈的高度: 12.500000

? 第3次落地經過了250.000000米

? 第4次落地可以反彈的高度: 6.250000

? 第4次落地經過了275.000000米

? 第5次落地可以反彈的高度: 3.125000

? 第5次落地經過了287.500000米

? 第6次落地可以反彈的高度: 1.562500

? 第6次落地經過了293.750000米

? 第7次落地可以反彈的高度: 0.781250

? 第7次落地經過了296.875000米

? 第8次落地可以反彈的高度: 0.390625

? 第8次落地經過了298.437500米

? 第9次落地可以反彈的高度: 0.195312

? 第9次落地經過了299.218750米

? 第10次落地可以反彈的高度: 0.097656

? 第10次落地經過了299.609375米

? ----------------------------------

? 第10次落地可以反彈的高度: 0.097656米

? 一共經過了299.609375米

題目19:求1+2!+3!+4!+...20!的和。

?

def factorial_sum(num):

? ? if num==1:

? ? ? ? return 1

? ? else:

? ? ? ? return num*factorial_sum(num-1)

res=0

for i in range(1,21):

? ? res +=factorial_sum(i)

? ? if i ==20 :

? ? ? ? print(i,end='!=')

? ? else :

? ? ? ? print(i,end='!+')

print(res) ??

輸出結果:

? 1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2561327494111820313

題目20:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮又多吃了一個;第二天早上又將剩下的桃子吃掉一半,又多吃了一個;以后每天早上都吃前一天剩下的一半多一個。到第十天早上想吃桃子時,只剩下了一個。求第一天共摘了多少。

?

peach_num=0 ? #可以整除2,一定是偶數個桃子

Flages=True

while Flages:

? ? peach_num +=2

? ? temp=peach_num

? ? for i in range(3): ? ? ? ? #遍歷次數,檢驗

? ? ? ? temp=temp/2

? ? ? ? if temp==int(temp): #當中有一次無法整除就退出

? ? ? ? ? ? temp -=1

? ? ? ? ? ? if temp==0: ? ? ? ?#不能為0

? ? ? ? ? ? ? ? break

? ? ? ? else:

? ? ? ? ? ? break

? ? else:

? ? ? ? if temp==1:

? ? ? ? ? ? Flages = False

print('第一天摘了%d個桃子' %peach_num)

輸出結果:

? 假設第二天只剩一個桃子時:第一天摘了4個桃子。

? 假設第三天只剩一個桃子時:第一天摘了10個桃子.

? 假設第四天只剩一個桃子時:第一天摘了22個桃子.

? 假設第五天只剩一個桃子時:第一天摘了46個桃子.

? ...

? 假設第十天只剩一個桃子時:第一天摘了1534個桃子.

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

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

相關文章

python基礎小白題3

題目021&#xff1a;猴子吃桃問題 猴子第一天摘下若干個桃子&#xff0c;當即吃了一半&#xff0c;還不癮&#xff0c;又多吃了一個 第二天早上又將剩下的桃子吃掉一半&#xff0c;又多吃了一個。 以后每天早上都吃了前一天剩下的一半零一個。 到第10天早上想再吃時&#x…

python基礎小白題4

題目031&#xff1a;請輸入星期幾的第一個字母來判斷一下是星期幾&#xff0c;如果第一個字母一樣&#xff0c;則繼續判斷第二個字母。 def tm031(): 【個人備注】&#xff1a;按照題意要求實現了就行 week [monday,tuesday,wednesday,thursday,friday,saturday,sunday] inp…

python基礎小白題5

題目045&#xff1a;統計 1 到 100 之和。 def tm045(): 【個人備注】&#xff1a;簡單&#xff0c;但官網有人寫的更簡單 s 0 for i in range(1,101): si print(s) # 更簡潔的方法 print(sum(range(1,101))) 題目046&#xff1a;求輸入數字的平方&#xff0c;如果平方運算…

快排-荷蘭國旗

在使用partition-exchange排序算法時&#xff0c;如快速排序算法&#xff0c;我們會遇到一些問題&#xff0c;比如重復元素太多&#xff0c;降低了效率&#xff0c;在每次遞歸中&#xff0c;左邊部分是空的(沒有元素比關鍵元素小)&#xff0c;而右邊部分只能一個一個遞減移動。…

快排-前m大元素

描述 給定一個數組包含n個元素&#xff0c;統計前m大的數并且把這m個數從大到小輸 出。 輸入 第一行包含一個整數n&#xff0c;表示數組的大小。n < 100000。 第二行包含n個整數&#xff0c;表示數組的元素&#xff0c;整數之間以一個空格分開 。每個整數的絕對值不超過…

歸并-求逆序數

考慮1,2,…,n (n < 100000)的排列i1&#xff0c;i2&#xff0c;…&#xff0c;in&#xff0c;如果其中存在j,k&#xff0c;滿足 j < k 且 ij > ik&#xff0c; 那么就稱(ij,ik)是這個排列的一個逆序。 一個排列含有逆序的個數稱為這個排列的逆序數。例如排列 26345…

動態規劃概述

注&#xff1a;第一次看不需要全理解&#xff0c;以后動態規劃做多了&#xff0c;再回來看看&#xff0c;會有更深的理解 先符上其它文章&#xff0c;看完這篇就可以開始看這些咯。 萌新&#xff1a; …

動態規劃-背包是否裝滿

很簡單但是需要特別注意的&#xff0c;一定不要錯。 背包&#xff1a; 有n 種不同的物品&#xff0c;每個物品有兩個屬性&#xff0c;v體積&#xff0c;c價值&#xff0c;現在給一個體積為 m 的背包&#xff0c;問最多可帶走多少價值的物品。 狀態轉移方程 dp[i][j]max…

dp打開思路3:HDU1069 POJ3616 POJ1088

HDU 1069 題目鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1069 題意&#xff1a;把給定的長方體&#xff08;不限&#xff09;疊加在一起&#xff0c;疊加的條件是&#xff0c;上面一個長方體的長和寬都比下面長方體的長 和寬短&#xff1b;求這些長方體能…

輸入輸出外掛

板子不解釋 //適用于正負整數 template <class T> inline bool scan_d(T &ret) {char c; int sgn;if(cgetchar(),cEOF) return 0; //EOFwhile(c!?&&(c<0||c>9)) cgetchar();sgn(c?)??1:1;ret(c?)?0:(c?0);while(cgetchar(),c>0&&c&…

dp打開思路4:POJ1189 UVA12511 HDU2845 HBCPC K

POJ1189 http://poj.org/problem?id1189 怎么說呢&#xff0c;不算難&#xff0c;但是容易出問題 我一開始的思路是&#xff0c;第一個釘子只有一種情況&#xff0c;然后下面每個釘子&#xff1a;左邊有釘子就加左邊的情況數&#xff0c;右邊有釘子就加右邊的情況數&#x…

第五次課 課上代碼

第五次 雙重循環——排序&#xff08;復習&#xff09; While循環 Break continue 字符串&#xff08;len&#xff0c;取值改值&#xff0c;格式化&#xff09; 列表生成式 >>> for i in range(4): for j in range(4): print(i,j) 0 0 0 1 0 2 0 3 1…

第六次課 課上代碼

oj的使用 Python Split 函數&#xff08;優點&#xff1a;抽象、簡潔。 舉例&#xff1a;str\int\float\abs 具體實現&#xff09; ninput().split(" ") 3 4 >>> print(int(n[0])int(n[1])) 7 >>> print(12345) 15 l[1,2,3,4,5] >>&g…

橙白oj18訓練作業1-題解、代碼

學習資料和oj如何使用加軟件官方qq群739979255 oj網址&#xff1a;http://oj.acm-icpc.top/ a題&#xff1a;原題為輸入兩個數&#xff0c;一行&#xff0c;用空格隔開&#xff0c;因為python操作對萌新來說略難&#xff0c;改為一行一個數&#xff0c;算出ab。 思路&#x…

橙白oj18訓練作業2-題解、代碼

http://oj.acm-icpc.top/ a題&#xff1a;三個數字排序 可以利用sort函數排序&#xff0c;或者自己想清楚邏輯自己寫&#xff0c;我給出一個正確邏輯 &#xff08;拓展冒泡和其他排序參考https://blog.csdn.net/hebtu666/article/details/81434236&#xff09; a,b,cinput(…

時間空間復雜度概述

找個時間寫一寫時間復雜度和一些問題分類&#xff0c;也普及一下這方面知識。 如何衡量一個算法好壞 很顯然&#xff0c;最重要的兩個指標&#xff1a;需要多久可以解決問題、解決問題耗費了多少資源 那我們首先說第一個問題&#xff0c;要多長時間來解決某個問題。那我們可…

二叉樹遍歷算法總結

文章目錄前提要素深度優先搜索DFS經典遍歷算法前序遍歷遞歸版迭代版中序遍歷遞歸版迭代版后序遍歷遞歸版迭代版Morris遍歷算法中序遍歷前序遍歷后序遍歷廣度優先搜索BFS按層遍歷參考資料前提要素 本文代碼用Java實現。 //二叉樹節點結構 public static class TreeNode {publi…

時間復雜度 P/NP/NPC

你會經常看到網上出現“這怎么做&#xff0c;這不是NP問題嗎”、“這個只有搜了&#xff0c;這已經被證明是NP問題了”之類的話。你要知道&#xff0c;大多數人此時所說的NP問題其實都是指的NPC問題。他們沒有搞清楚NP問題和NPC問題的概念。NP問題并不是那種“只有搜才行”的問…

kmp1-HDU1711 HDU1686 HDU2087 HDU3746

HDU 1711 kmp模板題 http://acm.hdu.edu.cn/showproblem.php?pid1711 #include<stdio.h> #include<string.h> #define N 1000005 int s[N]; int p[N]; int next[N]; int m,n; void getnext(){int j0,k-1;next[0]-1;while(j<m){if(k-1||p[j]p[k]){j;k;next[j]…