Python第五周作业
1. 一元二次方程求根
【描述】
一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:
如果a值为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Data error!
如果方程无实数解,输出“该方程无实数解”;
如果方程有两个相同的实数解,输出一个解;
如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔。
【输入】
输入三行数据, 每行输入一个实数
示例 1 :
8
5
2
示例 2 :
0
5
6
示例 3 :
0
0
9
【输出】
方程的解
示例 1 :该方程无实数解
示例 2 :-1.2
示例 3 :Data error!
【代码】
import math
def calc1(a,b,c):
return (-b+math.sqrt(delta))/(2*a)
def calc2(a,b,c):
return (-b-math.sqrt(delta))/(2*a)
a,b,c=eval(input()),eval(input()),eval(input())
delta = b * b - 4 * a * c
if a == 0 and b!=0:
print(-c / b)
elif a == 0 and b == 0:
print("Data error!")
else:
if delta < 0:
print("该方程无实数解")
elif delta == 0:
print(calc1(a,b,c))
elif delta>0:
print(calc1(a,b,c),calc2(a,b,c))
2. 百钱买百鸡
【描述】
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何?
【输入】
无
【输出】
每行输出一组结果,按鸡翁数、鸡母数、鸡雏数的顺序输出,数字之间用空格分隔;
如果有多组解时,按公鸡数量由少到多输出;
【代码】
for rooster in range(1,20):#公鸡最多买19只
for hen in range(1,32):#母鸡最多买31只
for chick in range(3,277,3):#小鸡最少买3只,最多买276只
if rooster+hen+chick==100 and 5*rooster+3*hen+chick//3 ==100:
print(rooster,hen,chick)
3. 鸡兔同笼
【描述】
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:
今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
这四句话的意思是:
有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔,假设鸡和兔都正常,无残疾。如无解则输出Data Error!
a,b = input().split() #读入两个数到a b中
a,b = map(int,input().split(',')) #读入两个整数到a,b中,输入的数用逗号分隔
a,b = map(int,input().split(' ')) #读入两个整数到a,b中,输入的数用空格分隔
【输入】
在一行里输入两个整数,用空格分隔
示例 1 :35 94
示例 2 :-4 16
【输出】
在一行里输出两个正整数,分别是鸡和兔的数量,用空格分隔
如无解则输出Data Error!
示例 1 :23 12
示例 2 :Data Error!
【代码】
flag = -1
head,feet = map(int,input().split(' '))
for chicken in range(head):
for rabbit in range(head):
if chic