一元二次方程求根
如果a值 为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Data error!
如果方程无实数解,输出“该方程无实数解”;
如果方程有两个相同的实数解,输出一个解;
如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔。
1 import math
2 a=eval(input())
3 b=eval(input())
4 c=eval(input())
5 if a==0:
6 if b==0:
7 print("Data error!")
8 else:
9 print(-c/b)
10 else:
11 if b**2-4*a*c>0:
12 x1=(-b-math.sqrt(b**2-4*a*c))/(2*a)
13 x2=(-b+math.sqrt(b**2-4*a*c))/(2*a)
14 if x1>x2:
15 print("{} {}".format(x1,x2))
16 else:
17 print("{} {}".format(x2,x1))
18 elif b**2-4*a*c==0:
19 print(-b/(2*a))
20 else:
21 print("该方程无实数解")
百钱买百鸡
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何?
1 for x in range(1,100):
2 for y in range(1,100):
3 z = 100 -x-y
4 if (5*x+3*y+z/3==100):
5 print(x,y,z)
鸡兔同笼
描述
大约在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 a,b = map(int,input().split(' ')) #读入两个整数到a,b中,输入的数用空格分隔
2 if b % 2 != 0 or a<0 or b<0 or a>b:
3 print("Data Error!")
4 else:
5 ji = (a*4-b)/2
6 tu = a-ji
7 print(int(ji),int(tu))
最大公约数和最小公倍数
描述
本题要求两个给定正整数的最大公约数和最小公倍数。
输入格式
两行输入:
每行给出一个正整数(≤1000)。
输出格式
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。
1 a=int(input())
2 b=int(input())
3 ma=max(a,b)
4 mi=min(a,b)
5 while(b!=0):
6 temp = a % b
7 a = b
8 b = temp
9 for i in range(1,mi+1):
10 if ma*i%mi==0:
11 x=ma*i
12 break
13 print(a,x)
判断三角形并计算面积
描述
输入三个数a,b,c, 判断能否以它们为三个边长构成三角形。若能,输出YES和三角形面积(结果保留2位小数),否则输出NO。
1 import math
2 a=eval(input())
3 b=eval(input())
4 c=eval(input())
5 if a+b>c and a+c>b and b+c>a:
6 p=(1/2)*(a+b+c)
7 s=math.sqrt(p*(p-a)*(p-b)*(p-c))
8 print("YES")
9 print("{:.2f}".format(s))
10 else:
11 print("NO")
判断IP地址合法性
描述
互联网上的每台计算机都有一个独一无二的编号,称为IP地址,每个合法的IP地址由'.'分隔开的4个数字组成,每个数字的取值范围是0-255。
现在用户输入一个字符串(不含空白符,不含前导0,如001直接输入1),请你判断s是否为合法IP,若是,输出'Yes',否则输出'No'。
如用户输入为202.114.88.10, 则输出Yes; 当用户输入202.114.88,则输出No。
1 s=input("")
2 addr=s.split('.')
3 if len(addr) != 4:
4 print("No")
5 else:
6 try:
7 for i in range(4):
8 addr[i]=int(addr[i])
9 if addr[i]<=255 and addr[i]>=0:
10 flag=1
11 else:
12 flag=0
13 break
14 if flag:
15 print("Yes")
16 else:
17 print("No")
18
19 except:
20 print("No")
回文素数
描述
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。
用户输入一个正整数n(1 <= n <= 100), 请你在一行内输出从小到大排列的的前n个回文素数,数字之间用空格分隔。
1 n=int(input())
2 a=0
3 b=1
4 def prime(num):
5 if num <= 1:
6 return False
7 i = 2
8 while i * i <= num:
9 if num % i == 0:
10 return False
11 i += 1
12 return True
13 def huiwen(num):
14 t=num
15 total=0
16 while t>0:
17 total=total * 10+t % 10
18 t=int(t/10)
19 return num==total
20 while (a!=n):
21 if(huiwen(b) and prime(b)):
22 print(b ,end=' ')
23 a=a+1
24 b=b+1
反素数
描述
反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如:13和31都是素数,且13和31都不是回文数,所以,13和31是反素数。
输入一个正整数n(1 <= n <= 100), 请输出从小到大排列的的前n个反素数,数字间以空格进行分隔。
1 n=int(input())
2 a=0
3 b=1
4 def prime(num): #判断数字是否是素数
5 if num <= 1:
6 return False
7 i = 2
8 while i * i <= num:
9 if num % i == 0:
10 return False
11 i += 1
12 return True
13 def huiwen(num): #判断数字是否回文
14 t=num
15 total=0
16 while t>0:
17 total=total * 10+t % 10
18 t=int(t/10)
19 return num!=total
20 def fanshu(num): # 将数字反过来
21 t=num
22 total=0
23 while t>0:
24 total=total * 10+t % 10
25 t=int(t/10)
26 return (total)
27 while (a!=n):
28 b2=fanshu(b)
29 if(huiwen(b) and prime(b) and prime (b2)):
30 print(b ,end=' ')
31 a=a+1
32 b=b+1
今天是第几天
描述
输入年月日,判断这一天是这一年的第几天?
输入格式
输入包括三行:
第一行是一个不超过四位数的正整数
第二行是一个不超过12的正整数
第三行是一个不超过31的正整数
输出格式
某年某月某日是某年的第多少天
1 a=int(input())#第一行是一个不超过四位数的正整数
2 b=int(input())#第二行是一个不超过12的正整数
3 c=int(input())#第三行是一个不超过31的正整数
4 list1=['0','31','29','31','30','31','30','31','31','30','31','30','31']
5 list2=['0','31','28','31','30','31','30','31','31','30','31','30','31']
6 x=0
7 i=0
8 if ((a%4==0) and (a%100 !=0)) or (a%400==0): #判断是否为闰年
9 while i <b:
10 x=x+int(list1[i])
11 i=i+1
12 day=x+c #计算这一年的第几天
13 else:
14 while i<b:
15 x=x+int(list2[i])
16 i=i+1
17 day=x+c
18 print("{}年{}月{}日是{}年第{}天".format(a,b,c,a,day))
提取首字符
描述
用户输入一串单词或数字,中间用空格分隔,提取每个单词或数字的第一个字符生成一个新的字符串并输出。
1 str1=input()
2 str2=str1.split(' ')
3 str3=''
4 for i in str2:
5 str3=str3+i[0]
6 print(str3)
判断火车票座位
描述
用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口还是过道。目前中国高铁和国内飞机窗口位置的字母是'A'和'F',过道位置是'C'和 'D',中间位置是'E'。
每个车厢座位排数是1-17,字母不区分大小写。
1 snum=input()
2 if snum[:-1]=='':
3 print("输入错误")
4 elif snum[:-1] !='':
5 if int(snum[:-1]) <= 17 and int(snum[:-1])>=1:
6 if snum[-1] in ['A','a','f','F']:
7 print("窗口")
8 elif snum[-1] in ['C','c','d','D']:
9 print("过道")
10 elif snum[-1] in ['e','E']:
11 print("中间")
12 else:
13 print("输入错误")
描述
用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口还是过道。目前中国高铁和国内飞机窗口位置的字母是'A'和'F',过道位置是'C'和 'D',中间位置是'E'。
每个车厢座位排数是1-17,字母不区分大小写。
1 snum=input()
2 if snum[:-1]=='':
3 print("输入错误")
4 elif snum[:-1] !='':
5 if int(snum[:-1]) <= 17 and int(snum[:-1])>=1:
6 if snum[-1] in ['A','a','f','F']:
7 print("窗口")
8 elif snum[-1] in ['C','c','d','D']:
9 print("过道")
10 elif snum[-1] in ['e','E']:
11 print("中间")
12 else:
13 print("输入错误")