01. 计算车费
题目描述
小红打车,起步价8元(3公里), 每公里收费 2 元,她打车行驶了 n 公里,计算车费
输入描述
输入一个公里数
输出描述
输出应付车费
示例
输入:
5
输出:
12
km = float(input("请输入公里数:"))
if km < 3:
print("车费为8元")#分情况进行计费
else:
cost = 8 + (km - 3) * 2
print("车费为" + str(cost) + "元")
02. 判定闰年
题目描述
一个年份如果能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年
输入输出描述
输入一个年份
输出Yes表示该年份为闰年,No则表示不是闰年
示例1
输入:
2008
输出:
Yes
示例2
输入:
2002
输出:
No
year = int(input("输入一个年份:"))
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):#条件4整除但不能被100整除,或者能被400整除
print("Yes")
else:
print("No")
03. 未来周几
题目描述
输入表示今天是一周内哪一天的数字(星期天是0,星期一是1,...,星期六是6)
并输入今天之后到未来某天的天数,然后输出该天是星期几
输入描述
分别输入两个数据,表示今日星期几的数字和未来某天的天数
输出描述
输出未来某天是星期几
示例1
输入:
1
3
输出:
星期四
示例2
输入:
0 31
输出:
星期三
now_day = int(input("请输入今天的星期数字:"))
pass_day = int(input("请输入经过天数:"))
real_day = (now_day + pass_day) % 7#加起来取余,因为数组是从0位置开始的
day = ["天","一","二","三","四","五","六"]
print("这一天是星期" + str(day[real_day]))
04. 方程求解
题目描述
如有一个2×2的线程方程组:
ax+by=e \\\\ cx+dy=f
你可以使用克莱姆法则解该线性方程:
x=\\frac{ed-bf}{ad-bc},y=\\frac{af-ec}{ad-bc}
其中ad-bc为判别式,如果为零则输出无解
输入输出描述
输入a、b、c、d、e、f六个数据,数据之间用空格分隔
输出两行,第一行x的解,第二行y的解,保留一位小数
示例1
输入:
9.0 4.0 3.0 -5.0 -6.0 -21.0
输出:
-2.0
3.0
示例2
输入:
1.0 2.0 2.0 4.0 4.0 5.0
输出:
无解
a , b , c , d , e , f = map(float, input("请输入a,b,c,d,e,f:").split())
if (a * d - b * c) == 0:
print("无解")
else:
x = (e * d - b * f) / (a * d - b * c)
y = (a * f - e * c) / (a * d - b * c)
print(x)
print(y)
05. 三角形周长
题目描述
输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法
如果任意两边之和大于第三边则输入都是合法的
输入输出描述
输入三个数据表示三边,数据之间用空格分隔
输出三角形的周长,如果非法则输出非法
示例1
输入:
1 1 1
输出:
3
示例2
输入:
1 3 1
输出:
非法
a , b , c = map(float,input("输入三角形三边:").split())
if (a+b>c) and (a+c>b) and (b+c>a):#满足任意两边之和大于第三边
print("周长为:"+str((a+b+c)))
else:
print("非法")
06. 图形构建
题目描述
输入一个整数n,按照下面的格式输出n行满足规律的数据
输入描述
输入一个整数n,表示输出n行数据
输出描述
输出满足规律的数字组成的图形(示例中的几种模式分别输出)
示例
模式A
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
模式B
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
模式C
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
模式D
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
'''
原理是两层循环,先管行数,在管列数
先输入数字,数字之间用空格代替,行之间用\t换行
AB大同小异,CD优先输出空格,再输出数字即可
'''
n = int(input("输入数字数:"))
i=1
while i <= n:
j = 1
while j <= i:
print(j,end=" ")
j += 1
print(end="\n")
i += 1
n = int(input("输入数字数:"))
j = n
while j>=1:
i=j
while i>=1:
print(i,end=" ")
i -= 1
print(end="\n")
j -= 1
07. 判断素数
题目描述
一个大于1的整数如果只能被正整数1和它本身整除,则它就是素数,例如2、3、5和7都是素数,而4、6、8、9则不是
输入描述
输入一个大于1的正整数
输出描述
输出Yes表示该数字是素数,否则输出No
示例1
输入:
9
输出:
No
示例2
输入:
11
输出:
Yes
num = int(input("输入数字:"))
if num <= 1:
print("No")
elif num == 2:#1和2可以直接判断
print("Yes")
i = 2
is_prime = True#默认是素数
while i <= (num-1):
if num % i == 0:
is_prime = False
break
i += 1
if is_prime:#默认为ture为素数
print("Yes")
else:
print("No")
08. 最大公约数
题目描述
输入两个正整数,计算其最大公约数,例如4和2的最大公约数是2,16和24的最大公约数是8
输入描述
输入两个数字
输出描述
输出最大公约数
示例1
输入:
16 24
输出:
8
示例2
输入:
7 3
输出:
1
num1 = int(input("请输入第一个正整数: "))
num2 = int(input("请输入第二个正整数: "))
if num1 > num2:#判断大小,可以进行交换
num1, num2 = num2, num1
gcd = 1
for i in range(1, num1 + 1):#遍历
if num1 % i == 0 and num2 % i == 0:
gcd = i
print(f"{num1}和{num2}的最大公约数是: {gcd}")
09. 计算π
题目描述
你可以使用下面的数列近似计算π
π=4(1-\\frac{1}{3}+\\frac{1}{5}-\\frac{1}{7}+\\frac{1}{9}-\\frac{1}{11}+...+\\frac{(-1)\^{i+1}}{2i-1})
当i越大时,计算结果越近似于π
10. 排列组合
题目描述
在数字范围[1,7]之间,任意选择两个不相同的数作为一个组合,输出每一组组合,并统计所有组合的个数
注:组合(a,b)与组合(b,a)算同一种组合,只记录一次
a=1
c=1#都是从1开始到7
while a<=7:
b = a +1
while b<=7:
c+=1
b+=1
a+=1
print(c)#记录循环次数
拓展作业
w01.计算e
题目描述
你可以使用下面的数列近似计算e
e=1+\\frac{1}{1!}+\\frac{1}{2!}+\\frac{1}{3!}+\\frac{1}{4!}+...+\\frac{1}{i!}
当i越大时,计算结果越近似于e
w02.组合
题目描述
有1、2、3、4这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别又是多少?
nums = ["1","2","3","4"]
i=x=z=0
o=1
while i<=3:#此循环从1开头,在开始时重置循环的标杆值
a = nums[i]
x=0
while x<=3:
b = nums[x]
z=0
while z<=3:
c = nums[z]
print(a+b+c)#将每一个值拼接起来
z +=1
o+=1
x += 1
i += 1
print(o)#计算值的个数
w03.水仙花
题目描述
水仙花数,是一个三位数,且这个数的个位、十位和百位的立方和等于该数字本身,例如153=1\^3+5\^3+3\^3
编写程序,输出所有的水仙花数
numbers = []
for num in range(100, 1000):
sum_of_cubes = sum(int(digit) ** 3 for digit in str(num))#次方操作
if sum_of_cubes == num:#判断是否等于本身
numbers.append(num)
print(numbers)
w04.进制
题目描述
编写代码,实现十进制数据转换二进制、二进制转换十进制、十进制转换十六进制、十六进制转换十进制的代码实现
输入描述
输入一个原始数据
输出描述
输出一个转换后的数据
示例
输入一个数据(十进制): 3
输出(二进制):11
num = int(input("输入:"))
num_lis = []
while num != 0 and num != 1:#为0和1时结束循环
a = num % 2
num = num // 2
num_lis.append(a)#此函数将a的值加入数组num_list中
num_lis.append(num)#同上
num_lis.reverse()#是数组颠倒
print(''.join(map(str, num_lis)))#将,换为空格