2020-04-20 11:39:00
html
計算函數曲線與x軸包圍的面積app
描述函數
計算函數曲線在區間(a,b)與x軸包圍的面積,可將這個區域平行於y軸切分紅相等寬度的小梯形,每一個梯形的面積可近似求出,全部梯形面積的和就是函數曲線與x軸包圍的面積,也就是函數在給定區間的積分值,dx越小,梯形近似度越高,計算結果越精確,也就是說區間切分段的越多,結果越精確。測試
參考下圖,計算函數sin(x)在區間(a,b)與x軸包圍的面積,a,b由用戶輸入,區間切分多少段也由用戶輸入。spa
輸入包括兩行設計
第一行是由空格分隔的兩個實數,表明積分區間code
第二行是一個正整數,表明切分數量orm
輸出格式htm
積分值,結果保留2位小數blog
1 import math 2 a,b = map(eval,input().split(' ')) 3 n = eval(input()) 4 dx = abs(b-a)/n 5 sum=0 6 for i in range (1,n+1): 7 dy=abs(math.sin(a)*dx) 8 a=a+dx 9 sum=sum+dy 10 print("{0:.2f}".format(sum))
注:①第四行dx的計算,應該加上絕對值符號;
②sin的計算應該調用math庫;
哥德巴赫猜測
數學領域著名的「哥德巴赫猜測」的大體意思是:任何一個大於2的偶數總能表示爲兩個素數之和。好比:24=5+19,其中5和19都是素數。本實驗的任務是設計一個程序,驗證20億之內的偶數均可以分解成兩個素數之和。
輸入在一行中給出一個(2, 2 000 000 000]範圍內的偶數N。
在一行中按照格式「N = p + q」輸出N的素數分解,其中p ≤ q均爲素數。又由於這樣的分解不惟一(例如24還能夠分解爲7+17),要求必須輸出全部解中p最小的解。
1 N = int(input()) 2 p1='' 3 q1='' 4 q=0 5 for p in range(2,(int(N/2)+2)): 6 q=N-p; 7 p1="素數" 8 q1="素數" 9 for x in range(2,p): 10 if (p%x)==0: 11 p1="不是素數" 12 for y in range(2,q): 13 if (q%y)==0: 14 q1="不是素數" 15 if p1=="素數" and q1=="素數": 16 print("N = {} + {}".format(p,q)) 17 break
一個籠子裏面關了若干只雞和兔子(雞有2只腳,兔子有4只腳,沒有例外),已經知道了籠子裏面腳的總數feets,則籠子裏至少有多少隻動物,至多有多少隻動物?
思路:①若是輸入的a爲奇數,可知該數據錯誤,最多、最少返回值都爲零;
②能被4整除的feets,最大值爲a除以2,最小值爲a除以4;
③能被2整除的feets,最大值爲a除以2,最小值爲a除以4,再加上1。
輸入格式
第一行輸入一個正整數,表示測試數據的組數n
接下來的n行,每行一個整數,表明腳的數量
輸出格式
輸出包含n行,每行對應一個輸入,包含兩個正整數,第一個是最少的動物數,第二個是最多的動物數,兩個正整數間用一個空格分開
若是沒有知足要求的答案,則輸出用空格分隔的兩個0
1 n=eval(input()) 2 for i in range (n): 3 a=eval(input()) 4 if (a % 2 != 0): 5 max=min=0 6 elif (a % 4) == 0: 7 max = a / 2 8 min = a / 4 9 else: 10 max = a / 2 11 min = (a /4)+(a%4)/2 12 print ("%d %d"%(min,max))
與7無關的數
描述
一個正整數,若是它能被7整除,或者它的十進制表示法中某一位的數字爲7,嘖稱其爲7相關的數。
求全部小魚n(n < 100)的與7無關的正整數以及他們的平方和。
輸入爲一個正整數
兩行
第一行爲全部與7無關的數,以列表形式輸出,逗號分開
第二行爲他們的平方和
1 n=int(input()) 2 list=[] 3 sum=0 4 for i in range(1,n): 5 if i%7!=0 and i//10!=7 and i%10!=7: 6 list.append(i) 7 sum=sum+i*i 8 print(list) 9 print(sum)
費馬大定理斷言,當整數n > 2時,關於a,b,c的方程a**n = b**n + c**n沒有正整數解。
該定理被提出來後,歷經三百多年,經歷多人猜測辯證,最終在1995年被英國數學家安德魯.懷爾斯證實。
固然,能夠找到大於1的4個整數知足完美立方等式:a**3 = b**3 + c**3 + d**3 (例如12**3 = 6**3 + 8**3 + 10**3)
編寫一個程序,對於任意給定的正整數N(N<=100),尋找全部的四元組(a,b,c,d),知足a**3 = b**3 + c**3 + d**3,其中 1 < a,b,c,d <=N
正整數N(N <= 100)
按照a的值從小到大,每行輸出一個完美立方等式,其中b,c,d按照非降序排列輸出。若兩個完美立方式中a值相同,則b值小的先輸出;在b值相等的狀況下,c值小的先輸出,在b,c都相等的狀況下,d值小的先輸出。
輸出格式參考輸入輸出示例。
1 N= int(input()) 2 for a in range(2,N+1): 3 for b in range(2,N+1): 4 for c in range(b,a): 5 for d in range(c,a): 6 if a**3==b**3+c**3+d**3: 7 print("Cube = {},Triple = ({},{},{})" .format(a,b,c,d))