鱼C论坛

 找回密码
 立即注册
查看: 783|回复: 9

[已解决]求助

[复制链接]
发表于 2020-6-14 09:25:30 | 显示全部楼层 |阅读模式

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

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

x
        大佬们能帮我看看这几道题吗,我是小学生,看到这3道题,眼前一黑
最佳答案
2020-6-14 09:53:30
本帖最后由 Twilight6 于 2020-6-14 10:09 编辑



你没点回复别人看不见你发的,看注释吧


0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值

# 案例一
def power(x,y):
    result = 1   # 初始化一个值
    if y == 0:
        return result  # 所有数的 0 次幂都为 1

    while y:  # 循环计算结果
        if y < 0:  # 次幂 小于 0 是 1/x 形式
            result /= x
            y += 1

        if y > 0: # 次幂 大于 0 是 x*x 的形式
            result *= x
            y -= 1
    return result
# 案例一简化版
def power(x,y):
    if y < 0:
        return 1/x**(-y)
    return x**y


1. 编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。

原答案:
# 案例二
def gcd(x, y): 
    if y:
        return gcd(y, x % y)
    else:
        return x
# 案例二注释版,假设传入的 x , y 分别是 4,6
def gcd(x, y):  #开始时候传入 x = 4 ; y = 6
    # 第一次递归 x = 6 y = 4
    # 第二次递归 x = 4 y = 2

    if y:
        # 刚开始 y = 6 条件成立执行if代码块
        # 第一次递归 y = 4 继续进入 if 代码块
        # 第二次递归 y = 2 继续进入 if 代码块
        # 第三次递归 y = 0 条件不成立则进入else 代码块

        return gcd(y, x % y)
        # 进入第一次递归 gcd(6,4%6)即 gcd(6,4)
        # 进入第二次递归 gcd(4,6%4) 即gcd (4,2)
        # 进入第三次递归 gcd (2,4%2)即 gcd (2,0)
    else:
        return x  # 第三次递归返回 x = 2

    # 然后依次返回 先从第三次递归开始 gcd(2,0)  -> gcd(4,2) -> gcd(6,4) -> gcd(4,6)


2. 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(脑补链接)的方式,结果与调用bin()一样返回字符串形式。

def mybin(x):
    temp = ''
    if x < 1:
        return ''
    else:
        temp += str(x%2)
        return mybin(x//2)+temp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-14 09:27:22 | 显示全部楼层


你的题呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-14 09:27:43 | 显示全部楼层
你好,能不能发一下题目……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-14 09:28:39 | 显示全部楼层
小鱼油你的题目呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-14 09:33:57 | 显示全部楼层
0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。
     
   
1. 编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。
   
   
2. 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(脑补链接)的方式,结果与调用bin()一样返回字符串形式。
     
这几天学python学的云里雾里的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-14 09:43:49 | 显示全部楼层
人呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-14 09:53:30 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-14 10:09 编辑



你没点回复别人看不见你发的,看注释吧


0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值

# 案例一
def power(x,y):
    result = 1   # 初始化一个值
    if y == 0:
        return result  # 所有数的 0 次幂都为 1

    while y:  # 循环计算结果
        if y < 0:  # 次幂 小于 0 是 1/x 形式
            result /= x
            y += 1

        if y > 0: # 次幂 大于 0 是 x*x 的形式
            result *= x
            y -= 1
    return result
# 案例一简化版
def power(x,y):
    if y < 0:
        return 1/x**(-y)
    return x**y


1. 编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。

原答案:
# 案例二
def gcd(x, y): 
    if y:
        return gcd(y, x % y)
    else:
        return x
# 案例二注释版,假设传入的 x , y 分别是 4,6
def gcd(x, y):  #开始时候传入 x = 4 ; y = 6
    # 第一次递归 x = 6 y = 4
    # 第二次递归 x = 4 y = 2

    if y:
        # 刚开始 y = 6 条件成立执行if代码块
        # 第一次递归 y = 4 继续进入 if 代码块
        # 第二次递归 y = 2 继续进入 if 代码块
        # 第三次递归 y = 0 条件不成立则进入else 代码块

        return gcd(y, x % y)
        # 进入第一次递归 gcd(6,4%6)即 gcd(6,4)
        # 进入第二次递归 gcd(4,6%4) 即gcd (4,2)
        # 进入第三次递归 gcd (2,4%2)即 gcd (2,0)
    else:
        return x  # 第三次递归返回 x = 2

    # 然后依次返回 先从第三次递归开始 gcd(2,0)  -> gcd(4,2) -> gcd(6,4) -> gcd(4,6)


2. 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(脑补链接)的方式,结果与调用bin()一样返回字符串形式。

def mybin(x):
    temp = ''
    if x < 1:
        return ''
    else:
        temp += str(x%2)
        return mybin(x//2)+temp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-14 11:38:14 | 显示全部楼层
大哥能解释一下吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-14 11:39:05 | 显示全部楼层

注释里面写了呀~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-14 11:39:31 | 显示全部楼层
我是小学生,大哥您能解释一下什么是幂的值吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 16:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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