本人初期学习py时实现的小功能(21-27),自用,勿作评论

#题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和

list1 = [1,2]
list2 = []
for i in range(20):
    list2.append(max(list1)/min(list1))         #可以看到数列的每一项都是a,b中较大的数除以较小的数
    list1[list1.index(min(list1))]=sum(list1)   #将a,b中较小的数替换为两数之和
print(sum(list2))
print(len(list2))   #此行代码用于验证有几项之和,非必要。
#题目:求1+2!+3!+...+20!的和。
list1 = []
import math
for i in range(1,21):
    list1.append(math.factorial(i))
print(sum(list1))
# 对于两个 3 行 3 列的矩阵,使用函数实现其对应位置的数据相加,并返回一个新矩阵

X = [[12,7,3],
    [4 ,5,6],
    [7 ,8,9]]

Y = [[5,8,1],
    [6,7,3],
    [4,5,9]]

def plusmax(a1,a2,a3,b1,b2,b3):
    na1=a1[0]+b1[0]
    na2=a1[1]+b1[1]
    na3=a1[2]+b1[2]
    nb1=a2[0]+b2[0]
    nb2=a2[1]+b2[1]
    nb3=a2[2]+b2[2]
    nc1=a3[0]+b3[0]
    nc2=a3[1]+b3[1]
    nc3=a3[2]+b3[2]
    print("\b",[na1,na2,na3],"\n",[nb1,nb2,nb3],"\n",[nc1,nc2,nc3])
plusmax(X[0],X[1],X[2],Y[0],Y[1],Y[2])


#法二:先设计好结果矩阵,再修改其中的值
result = [[0, 0, 0],
          [0, 0, 0],
          [0, 0, 0]]
for i in range(len(X)):
    for j in range(len(X[0])):
        result[i][j] = X[i][j] + Y[i][j]
for r in result:
    print(r)
#输入一个整数n,打印出n行的杨辉三角形。

n = int(input("请输入一个正整数n:"))
try:
    if n == 1:
        print([1])
    elif n == 2:
        print([1],"\n",[1,1])
    else:
        print("\b",[1], "\n", [1, 1])
        list1=[1,1]
        for i in range(n-2):
            a = 0
            list2=[1]      #list2是下一个打印出来的列表
            for m in list1:
                try:
                    list2.append(list1[a]+list1[a+1])
                    a+=1
                except:
                    list2.append(1)
                    print("\b",list2)
                    list1=list2
except:
    print("输入有误!")
#有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(自己输入n)

data = [i+1 for i in range(int(input("请输入n:")))]
print(data)
i = 1
while len(data) > 1:
    if i % 3 == 0:
        data.pop(0)
    else:
        data.append(data.pop(0))
    i += 1
print(data)
# 乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账。
# 请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能得到多少瓶饮料

n = int(input())
a=0             #a代表小明已经喝了的饮料,(a是计数器)
while n>=3:
    a=a+(n//3)*3
    n=n%3+n//3  #n//3表示喝掉的赢料,n%3表示没能对换瓶盖所以暂时不喝的饮料
a=a+n           #仍需加上暂时不能再换瓶盖的部分
print(a)
# 输入一个有限小数,输出其的分数形式。如:输入0.9,输出9/10

import math
a = float(input())
b = len(str(a))-1-len(str(int(a)))    #b表示a的小数位有多少位
x = "1"
for i in range(b):
    x = x+"0"
fm = int(x)
fz = int(a*int(x))
x = math.gcd(fm, fz)
fm = int(fm/x)
fz = int(fz/x)
print(f"{fz}/{fm}")

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值