鱼C论坛

 找回密码
 立即注册
查看: 1307|回复: 2

[技术交流] 【第17——24讲】函数系列

[复制链接]
发表于 2021-8-11 17:15:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第17讲
1.这是小甲鱼写的辗转相除法
def gcd(x, y):
    while y:
        t = x % y
        x = y
        y = t
 
    return x
    
print(gcd(4, 6))
这是我写的
def gcd(x,y):
    return  [x // y,x % y] 

a, b=  1999,615  
while 1 :  #  没到结果就一直循环
    # 先计算 一下,计算的得到的余数要检验
    c,d = gcd(a, b)
    # 检验 成功之后就输出
    if d == 0:
        print('最大公约数为%d'%(b))
        break
    else: # 失败之后将运算的结果作为新的参数
        a, b = b, d
2 这是小甲鱼的十进制转二进制
def Dec2Bin(dec):
    temp = []
    result = ''

    while dec:
        quo = dec % 2
        dec = dec // 2
        temp.append(quo)

    while temp:
        result += str(temp.pop())

    return result

print(Dec2Bin(62))
这是我写的
def conv(nd):
    left = nd  # 为了方便最后print
    c = bio =  ''  # 用于连接余数得到顺序和逆序的二进制数初始值
    while 1:
        c= c + str(nd % 2) # 先得到余数,如果和下面的顺序反了就会导致nd成了nd/2
        nd = nd // 2       # 得到商
        if nd == 0:        # 判定是否可以结束
            b = [i for i in reversed(c)]    # 算完了的话就可以着手处理结果的顺序了,现在逆转之
            for i in b:
                bio = bio + i    # 完成逆转
            print('%d的二进制表达为%d'%(left,int(bio)))
            break
conv(255)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 19:53:17 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-12 08:52:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 15:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表