1.sdut-分段计算居民水费
为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关,请编写程序实现水费的计算。
(1)当x不超过15吨时,y=4x/3;
(2)超过后,y=2.5x−17.5。
输入格式:
在一行中给出非负实数x。
输出格式:
在一行输出应交的水费,精确到小数点后2位。
输入样例1
12
输出样例1
16.00
输入样例2
16
输出样例2
22.50
code:
def Count(x):
if x <= 15:
return 4 * x / 3
else:
return 2.5 * x - 17.5
if __name__ == '__main__':
print("{:.2f}".format(Count(float(input()))))
2.超速罚款 - 实验4 条件与分支 -《Python编程实验》
开车超速是要罚款的,某国相应法律如下:
情况 处罚
车速 ≤ 限速 程序输出:未超速
超速比 ≤ 10% 程序输出:超速警告
10% <超速比≤ 20% 程序输出:罚款100元
20% <超速比≤ 50% 程序输出:罚款500元
50% <超速比≤ 100% 程序输出:罚款1000元
超速比 > 100% 程序输出:罚款2000元
请编写程序,程序从输入的第1行读取车速(整数),从输入的第2行读取限速值(整数),然后使用条件分支语句进行判断,输出如表所示的处罚结论。
输入格式:
车速
限速值
输出格式:
如表所示的处罚结论
输入样例:
149
100
输出样例:
罚款500元
code:
def judge(v, maxv):
if v <= maxv:
print("未超速")
elif v / maxv <= 1.1:
print("超速警告")
elif v / maxv <= 1.2:
print("罚款100元")
elif v / maxv <= 1.5:
print("罚款500元")
elif v / maxv <= 2:
print("罚款1000元")
else:
print("罚款2000元")
if __name__ == '__main__':
v = int(input())
maxv = int(input())
judge(v, maxv)
3.百钱百鸡
百钱百鸡问题的白话版:100元钱买100只鸡,公鸡5元1只,母鸡3元1只,小鸡1元3只。问公鸡、母鸡、小鸡各多少只(某种鸡可以为0只)?
百钱百鸡的结果如输出样例所示。
现在把100改为n,即n元钱买n只鸡,各种鸡价格不变,结果又如何呢?
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个整数n(100<=n<=1000)。
输出格式:
对于每组测试,按公鸡、母鸡、小鸡的数量(按公鸡数从小到大的顺序)逐行输出各种买法(每行数据之间空一个空格)。
输入样例:
100
输出样例:
0 25 75
4 18 78
8 11 81
12 4 84
code:
def func(num):
for i in range(num // 5):
for j in range(num // 3):
k = num - i - j
if 5 * i + 3 * j + k / 3 == num:
print(i, j, k)
def main():
try:
while True:
n = int(input())
func(n)
except EOFError:
pass
if __name__ == '__main__':
main()
4.奖金计算,循环与多分支(高教社,《Python编程基础及应用》习题6-5)
企业发放的奖金根据利润提成。利润低于或等于100,000元的,奖金可提10%;利润高于100,000元,低于200,000(100,000 < p <=200,000)时,100,000元及以内部分按10%提成,高于100,000元的部分,可提成7.5%; 200,000 < p <= 400,000时,200,000元及其以内的部分仍按上述办法提成(下同),高于200,000元的部分按5%提成; 400,000 < p <=600,000元时,高于400,000元的部分按3%提成; 600,000 < p <=1,000,000时,高于600,000元的部分按1.5%提成; p >1,000,000时,超过1,000,000元的部分按1%提成。 按上述需求,编写一个程序,该程序从键盘输入当月利润p,求应发奖金数。
输入格式:
利润总额(浮点数)
输出格式:
奖金数(保留两位小数)
输入样例:
230000
输出样例:
19000.00
code:
def main():
n = float(input())
lists = [100000, 200000, 400000, 600000, 1000000]
percents = [0.1, 0.075, 0.05, 0.03, 0.015, 0.01]
if n <= lists[0]:
ans = n * percents[0]
elif lists[0] < n <= lists[1]:
ans = lists[0] * percents[0]\
+ (n - lists[0]) * percents[1]
elif lists[1] < n <= lists[2]:
ans = lists[0] * percents[0] + lists[0] * percents[1] \
+ (n - lists[1]) * percents[2]
elif lists[2] < n <= lists[3]:
ans = lists[0] * percents[0] + lists[0] * percents[1] + lists[1] * percents[2]\
+ (n - lists[2]) * percents[3]
elif lists[3] < n <= lists[4]:
ans = lists[0] * percents[0] + lists[0] * percents[1] + lists[1] * percents[2] \
+ lists[1] * percents[3] \
+ (n - lists[3]) * percents[4]
elif n > lists[4]:
ans = lists[0] * percents[0] + lists[0] * percents[1] + lists[1] * percents[2] \
+ lists[1] * percents[3] + lists[2] * percents[4] \
+ (n - lists[4]) * percents[5]
print("%.2f"%ans)
if __name__ == '__main__':
main()
5.打印沙漏
当n=5时,沙漏图形如输出样例所示。请观察并明确沙漏图形的规律。要求输入一个整数n,输出满足规律的沙漏图形。
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个整数n(1<n<20)。
输出格式:
对于每组测试,输出满足规律的沙漏图形。
输入样例:
5
输出样例:
*********
*******
*****
***
*
***
*****
*******
*********
code:
def draw(n):
num = 2 * n - 1
for i in range(n):
for j in range(i):
print(' ', end = '')
for j in range(num):
print('*', end = '')
print()
num -= 2
num = 3
b = n - 2
for i in range(n - 1):
for j in range(b):
print(' ', end = '')
for j in range(num):
print('*', end = '')
print()
b -= 1
num += 2
def main():
try:
while True:
n = eval(input())
draw(n)
except EOFError:
pass
if __name__ == '__main__':
main()