第二次代码作业(python)

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)))#将,换为空格
相关推荐
努力学习编程的伍大侠9 分钟前
基础排序算法
数据结构·c++·算法
qq_5290252923 分钟前
Torch.gather
python·深度学习·机器学习
数据小爬虫@23 分钟前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
XiaoLeisj37 分钟前
【递归,搜索与回溯算法 & 综合练习】深入理解暴搜决策树:递归,搜索与回溯算法综合小专题(二)
数据结构·算法·leetcode·决策树·深度优先·剪枝
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Jasmine_llq1 小时前
《 火星人 》
算法·青少年编程·c#
終不似少年遊*1 小时前
pyecharts
python·信息可视化·数据分析·学习笔记·pyecharts·使用技巧
Python之栈1 小时前
【无标题】
数据库·python·mysql
闻缺陷则喜何志丹1 小时前
【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567
c++·算法·动态规划·力扣·图论·最短路·路径