鱼C论坛

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

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

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

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

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

x
第17讲
1.这是小甲鱼写的辗转相除法
  1. def gcd(x, y):
  2.     while y:
  3.         t = x % y
  4.         x = y
  5.         y = t

  6.     return x
  7.    
  8. print(gcd(4, 6))
复制代码
这是我写的
  1. def gcd(x,y):
  2.     return  [x // y,x % y]

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

  4.     while dec:
  5.         quo = dec % 2
  6.         dec = dec // 2
  7.         temp.append(quo)

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

  10.     return result

  11. print(Dec2Bin(62))
复制代码
这是我写的
  1. def conv(nd):
  2.     left = nd  # 为了方便最后print
  3.     c = bio =  ''  # 用于连接余数得到顺序和逆序的二进制数初始值
  4.     while 1:
  5.         c= c + str(nd % 2) # 先得到余数,如果和下面的顺序反了就会导致nd成了nd/2
  6.         nd = nd // 2       # 得到商
  7.         if nd == 0:        # 判定是否可以结束
  8.             b = [i for i in reversed(c)]    # 算完了的话就可以着手处理结果的顺序了,现在逆转之
  9.             for i in b:
  10.                 bio = bio + i    # 完成逆转
  11.             print('%d的二进制表达为%d'%(left,int(bio)))
  12.             break
  13. 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, 2024-5-3 21:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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