鱼C论坛

 找回密码
 立即注册
查看: 1568|回复: 5

[已解决]Python 第22课 课后题 求助

[复制链接]
发表于 2018-2-17 20:37:18 | 显示全部楼层 |阅读模式
15鱼币
本帖最后由 屁哥 于 2018-2-17 21:01 编辑
  1. def power(x, y):
  2.     if y:
  3.         return x * power(x, y-1)
  4.     else:
  5.         return 1
  6.    
  7. print(power(2, 3))
复制代码


用递归的形式 写出 x的 y 次幂  第22课 课后题

return x * power(x, y-1) 这句没理解  求个注释 和解析过程  白天问了这个问题 还是没整明白

return 1这句也没理解
最佳答案
2018-2-17 20:37:19
屁哥 发表于 2018-2-17 20:51
return x * power(x, y-1)  这句  第一次 return之后 x * power(2,3-1) ==  x * power(2, 2) 这里看明白 ...

我们是要用递归来写出幂的运算,首先我们要想出幂的本质,x的y次幂其实就是y个x相乘,我们知道x的零次幂是1,那x的一次幂就是x乘x的零次幂,也就是一个x,x的两次幂就是x乘x的一次幂,也就是两个x相乘,x的三次幂也就是x乘x的两次幂,也就是三个x相乘,以此类推,这就是return x * power(x, y-1)的含义,y个x相乘,就是x乘以(y-1)个x相乘的结果。

最佳答案

查看完整内容

我们是要用递归来写出幂的运算,首先我们要想出幂的本质,x的y次幂其实就是y个x相乘,我们知道x的零次幂是1,那x的一次幂就是x乘x的零次幂,也就是一个x,x的两次幂就是x乘x的一次幂,也就是两个x相乘,x的三次幂也就是x乘x的两次幂,也就是三个x相乘,以此类推,这就是return x * power(x, y-1)的含义,y个x相乘,就是x乘以(y-1)个x相乘的结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-17 20:37:19 | 显示全部楼层    本楼为最佳答案   
屁哥 发表于 2018-2-17 20:51
return x * power(x, y-1)  这句  第一次 return之后 x * power(2,3-1) ==  x * power(2, 2) 这里看明白 ...

我们是要用递归来写出幂的运算,首先我们要想出幂的本质,x的y次幂其实就是y个x相乘,我们知道x的零次幂是1,那x的一次幂就是x乘x的零次幂,也就是一个x,x的两次幂就是x乘x的一次幂,也就是两个x相乘,x的三次幂也就是x乘x的两次幂,也就是三个x相乘,以此类推,这就是return x * power(x, y-1)的含义,y个x相乘,就是x乘以(y-1)个x相乘的结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-17 20:43:00 | 显示全部楼层
if y是y不等于0的时候会进入,所以你如果写递归的话就要把y等于0的情况写进去,我们知道任何数的零次方都是1,所以else,即y为0的时候,应该 return 1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-17 20:50:43 | 显示全部楼层
蓝色王魂 发表于 2018-2-17 20:43
if y是y不等于0的时候会进入,所以你如果写递归的话就要把y等于0的情况写进去,我们知道任何数的零次方都是 ...

return x * power(x, y-1)
这句 没理解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-17 20:51:55 | 显示全部楼层
蓝色王魂 发表于 2018-2-17 20:43
if y是y不等于0的时候会进入,所以你如果写递归的话就要把y等于0的情况写进去,我们知道任何数的零次方都是 ...

return x * power(x, y-1)  这句  第一次 return之后 x * power(2,3-1) ==  x * power(2, 2) 这里看明白了  函数 的变量 y 发生了变化 power(2, 2)
那 下面打印结果 怎么回事 函数变了  打印结果 怎么出现两个  x 相乘了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-17 21:34:40 | 显示全部楼层
蓝色王魂 发表于 2018-2-17 21:15
我们是要用递归来写出幂的运算,首先我们要想出幂的本质,x的y次幂其实就是y个x相乘,我们知道x的零次幂 ...

假设 power(2, 3)
return  是打印返回值
return x * power(x, y-1) 是打印 x * power()函数的返回值
我知道 x 是 2 //// 乘号后面的 是什么  怎么用的  能帮忙 给个运算过程么
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-7 18:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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