文章目錄
- 第2章-1 計算 11+12+13+...+m (30分)
- 第2章-2 計算分段函數[1] (10分)
- 第2章-3 階梯電價 (15分)
- 第2章-4 特殊a串數列求和 (20分)
- 第2章-5 求奇數分之一序列前N項和 (15分)
- 第2章-6 求交錯序列前N項和 (15分)
- 第2章-7 產生每位數字相同的n位數 (30分)
- 第2章-8 轉換函數使用 (30分)
- 第2章-9 比較大小 (10分)
- 第2章-10 輸出華氏-攝氏溫度轉換表 (15分)
- 第2章-11 求平方與倒數序列的部分和 (15分)
- 第2章-12 輸出三角形面積和周長 (15分)
- 第2章-13 分段計算居民水費 (10分)
- 第2章-14 求整數段和 (15分)
第2章-1 計算 11+12+13+…+m (30分)
輸入一個正整數m(20<=m<=100),計算 11+12+13+…+m 的值。
輸入格式:
在一行輸入一個正整數m。
輸出格式:
在一行中按照格式“sum = S”輸出對應的和S.
輸入樣例:
在這裏給出一組輸入。例如:
90
輸出樣例:
在這裏給出相應的輸出。例如:
sum = 4040
代碼:
m = eval(input())
S = 0
for i in range(11,m+1):
S += i
print("sum =",S)
第2章-2 計算分段函數[1] (10分)
本題目要求計算下列分段函數f(x)的值:
輸入格式:
輸入在一行中給出實數x。
輸出格式:
在一行中按“f(x) = result”的格式輸出,其中x與result都保留一位小數。
輸入樣例1: | 輸出樣例1: |
---|---|
10 | f(10.0) = 0.1 |
輸入樣例2: | 輸出樣例2: |
---|---|
0 | f(0.0) = 0.0 |
代碼:
x = eval(input())
if x == 0 :
print("f(0.0) = 0.0")
else:
print("f({:.1f}) = {:.1f}".format(x,1 / x))
第2章-3 階梯電價 (15分)
爲了提倡居民節約用電,某省電力公司執行“階梯電價”,安裝一戶一表的居民用戶電價分爲兩個“階梯”:月用電量50千瓦時(含50千瓦時)以內的,電價爲0.53元/千瓦時;超過50千瓦時的,超出部分的用電量,電價上調0.05元/千瓦時。請編寫程序計算電費。
輸入格式:
輸入在一行中給出某用戶的月用電量(單位:千瓦時)。
輸出格式:
在一行中輸出該用戶應支付的電費(元),結果保留兩位小數,格式如:“cost = 應付電費值”;若用電量小於0,則輸出"Invalid Value!"。
輸入樣例1: | 輸出樣例1: |
---|---|
10 | cost = 5.30 |
輸入樣例2: | 輸出樣例2: |
---|---|
100 | cost = 55.50 |
代碼:
a = eval(input())
if a < 0 :
print("Invalid Value!")
else :
if a <= 50:
cost = a * 0.53
else:
cost = 0.53 * 50 + 0.58 * (a - 50)
print("cost = %.2f"%cost)
第2章-4 特殊a串數列求和 (20分)
給定兩個均不超過9的正整數a和n,要求編寫程序求a+aa+aaa++⋯+aa⋯a(n個a)之和。
輸入格式:
輸入在一行中給出不超過9的正整數a和n。
輸出格式:
在一行中按照“s = 對應的和”的格式輸出。
輸入樣例:
2 3
輸出樣例:
s = 246
代碼:
a,n = input().split()
s = 0
for i in range(1,eval(n)+1):
s += eval(a*i)
print("s = {:d}".format(s))
a,n = input().split()
print("s = {:d}".format(sum([int(a*i) for i in range(1,eval(n)+1)])))
第2章-5 求奇數分之一序列前N項和 (15分)
本題要求編寫程序,計算序列 1 + 1/3 + 1/5 + … 的前N項之和。
輸入格式:
輸入在一行中給出一個正整數N。
輸出格式:
在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數點後6位。題目保證計算結果不超過雙精度範圍。
輸入樣例:
23
輸出樣例:
sum = 2.549541
代碼:
n = int(input())
s = 0
for i in range(1,2*n,2):
s += 1 / i
print("sum = %.6f"%s)
n = int(input())
print("sum = {:.6f}".format(sum([1/i for i in range(1,2*n,2)])))
第2章-6 求交錯序列前N項和 (15分)
本題要求編寫程序,計算交錯序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N項之和。
輸入格式:
輸入在一行中給出一個正整數N。
輸出格式:
在一行中輸出部分和的值,結果保留三位小數。
輸入樣例:
5
輸出樣例:
0.917
代碼:
n = int(input())
s = 0
for i in range(1,n+1):
s += i/(2*i-1)*pow(-1,i-1)
print("%.3f"%s)
第2章-7 產生每位數字相同的n位數 (30分)
讀入2個正整數A和B,1<=A<=9, 1<=B<=10,產生數字AA…A,一共B個A
輸入格式:
在一行中輸入A和B。
輸出格式:
在一行中輸出整數AA…A,一共B個A
輸入樣例1:
在這裏給出一組輸入。例如:
1, 5
輸出樣例1:
在這裏給出相應的輸出。例如:
11111
輸入樣例2:
在這裏給出一組輸入。例如:
3 ,4
輸出樣例2:
在這裏給出相應的輸出。例如:
3333
代碼:
a,b = map(int,input().split(','))
print(str(a)*b)
第2章-8 轉換函數使用 (30分)
輸入一個整數和進制,轉換成十進制輸出
輸入格式:
在一行輸入整數和進制
輸出格式:
在一行十進制輸出結果
輸入樣例:
在這裏給出一組輸入。例如:
45,8
輸出樣例:
在這裏給出相應的輸出。例如:
37
代碼:
a,b=input().split(",")
print(int(a,eval(b)))
第2章-9 比較大小 (10分)
本題要求將輸入的任意3個整數從小到大輸出。
輸入格式:
輸入在一行中給出3個整數,其間以空格分隔。
輸出格式:
在一行中將3個整數從小到大輸出,其間以“->”相連。
輸入樣例:
4 2 8
輸出樣例:
2->4->8
代碼:
print(*sorted(map(int,input().split())),sep="->")
第2章-10 輸出華氏-攝氏溫度轉換表 (15分)
輸入2個正整數lower
和upper
(lowe
r≤upper
≤100),請輸出一張取值範圍爲[lower
,upper
]、且每次增加2華氏度的華氏-攝氏溫度轉換表。
溫度轉換的計算公式:C=5×(F−32)/9,其中:C表示攝氏溫度,F表示華氏溫度。
輸入格式:
在一行中輸入2個整數,分別表示lower
和upper
的值,中間用空格分開。
輸出格式:
第一行輸出:“fahr celsius”
接着每行輸出一個華氏溫度fahr(整型)與一個攝氏溫度celsius(佔據6個字符寬度,靠右對齊,保留1位小數)。
若輸入的範圍不合法,則輸出"Invalid."。
輸入樣例1:
32 35
輸出樣例1:
fahr celsius
32 0.0
34 1.1
輸入樣例2:
40 30
輸出樣例2:
Invalid.
代碼:
a,b=map(int,input().split())
if(a>b):
print("Invalid.")
else:
print("fahr celsius")
i = a
while i <= b:
print("{:d}{:>6.1f}".format(i,5*(i-32)/9))
i += 2
第2章-11 求平方與倒數序列的部分和 (15分)
本題要求對兩個正整數m和n(m≤n)編寫程序,計算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
輸入格式:
輸入在一行中給出兩個正整數m和n(m≤n),其間以空格分開。
輸出格式:
在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數點後六位。題目保證計算結果不超過雙精度範圍。
輸入樣例:
5 10
輸出樣例:
sum = 355.845635
代碼:
m,n = map(int,input().split(" "))
s = 0
for i in range(m,n+1):
s += i**2 + 1/i
print("sum = %.6f"%s)
m,n = map(int,input().split(" "))
print("sum = %.6f"%sum([i**2+1/i for i in range(m,n+1)]))
第2章-12 輸出三角形面積和周長 (15分)
本題要求編寫程序,根據輸入的三角形的三條邊a、b、c,計算並輸出面積和周長。注意:在一個三角形中, 任意兩邊之和大於第三邊。三角形面積計算公式:area=√s(s−a)(s−b)(s−c),其中s=(a+b+c)/2。
輸入格式:
輸入爲3個正整數,分別代表三角形的3條邊a、b、c。
輸出格式:
如果輸入的邊能構成一個三角形,則在一行內,按照
area = 面積; perimeter = 周長
的格式輸出,保留兩位小數。否則,輸出
These sides do not correspond to a valid triangle
輸入樣例1:
5 5 3
輸出樣例1:
area = 7.15; perimeter = 13.00
輸入樣例2:
1 4 1
輸出樣例2:
These sides do not correspond to a valid triangle
代碼:
a,b,c = map(int,input().split(" "))
s = sum((a,b,c)) / 2
if (a+b > c) and (a+c>b) and (b+c>a):
print("area = {:.2f}; perimeter = {:.2f}".format(pow(s*(s-a)*(s-b)*(s-c),0.5),sum((a,b,c))))
else:
print("These sides do not correspond to a valid triangle")
第2章-13 分段計算居民水費 (10分)
爲鼓勵居民節約用水,自來水公司採取按用水量階梯式計價的辦法,居民應交水費y(元)與月用水量x(噸)相關:當x不超過15噸時,y=4x/3;超過後,y=2.5x−17.5。請編寫程序實現水費的計算。
輸入格式:
輸入在一行中給出非負實數x。
輸出格式:
在一行輸出應交的水費,精確到小數點後2位。
輸入樣例1: | 輸出樣例1: |
---|---|
12 | 16.00 |
輸入樣例2: | 輸出樣例2: |
---|---|
16 | 22.50 |
代碼:
x = eval(input())
if x <= 15:
print("%.2f"%(4*x/3))
else:
print("%.2f"%(2.5*x-17.5))
第2章-14 求整數段和 (15分)
給定兩個整數A和B,輸出從A到B的所有整數以及這些數的和。
輸入格式:
輸入在一行中給出2個整數A和B,其中−100≤A≤B≤100,其間以空格分隔。
輸出格式:
首先順序輸出從A到B的所有整數,每5個數字佔一行,每個數字佔5個字符寬度,向右對齊。最後在一行中按Sum = X的格式輸出全部數字的和X。
輸入樣例:
-3 8
輸出樣例:
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30
代碼:
a,b = map(int,input().split(" "))
s,c = 0,0
for i in range(a,b+1):
s += i
c += 1
print("{:>5d}".format(i),end="")
while c%5 == 0:
print("")
break
if c%5 == 0:
print("Sum =",s)
else:
print("\nSum =",s)