鱼C论坛

 找回密码
 立即注册
查看: 2234|回复: 3

求大佬看一下这个问题,以及改进方法(小白太难了)

[复制链接]
发表于 2020-10-26 12:06:58 | 显示全部楼层 |阅读模式

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

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

x
图片是我需要完成的计算,我看见这个式子的时候就感觉可以用递归,所以就尝试了一下,但是发现写不出来,然后就想着,干脆分开写,因此我把后面两个用for循环写出来了,但是前面这个y(n+1)和y(n)我感觉应该是递归简单些,
所以就准备直接在写出的代码最前面加 def z(n):   然后最后加上return 0.905*z(n-1)+x+x1   但是写出这个代码后,运行是可以运行,但是会出现图二这种情况。如果def和两个for循环并列就不会执行,想请问大佬这个怎么解决呢,或者
有什么其它的代码吗?想参考一下
ps.程序中有i*0.1和a*0.1是因为要求是0.1为间距来取,所以我用的整数*0.1,应该就是按0.1来取距离了把

number=int(input('请输入数字:'))
x=0
for i in range(number):
    x=i*0.1*0.5*0.9*(1+i*0.1)
print(x)



num1=int(input('请输入一个数字:'))
x1=0
for a in range(num1+1):
    x1=0.5*0.1*a*0.1*(a*0.1+1)
print(x1)

IMG_20201026_115541.jpg
{RX15E5L[%@A2I184OQR3VM.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-26 15:47:59 | 显示全部楼层
number=int(input('请输入数字:'))
x=0           #无意义,x第一次出现是赋值语句,这里不需要初始化赋值
for i in range(number):
    x=i*0.1*0.5*0.9*(1+i*0.1) #你这个循环用来干嘛的?这个经过一整轮无意义的循环,实际就是最后一次循环在运算(i=number-1)
print(x)
=======实在是你手写的和你代码结合看我根本看不懂,可能我学历太低,只能帮你到这了========
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-26 18:51:02 | 显示全部楼层
笨鸟学飞 发表于 2020-10-26 15:47
=======实在是你手写的和你代码结合看我根本看不懂,可能我学历太低,只能帮你到这了========

其实最开始是没有这个def,我只有这两个for循环,我把print放在for外面是为了只得到最后一轮得那个值,然后用最后一轮的那个值再来进行后面的计算。我现在就很想知道,用递归的话,怎么把我手写出来的这个表达式用代码实现,因为他同时有了3个需要递归的数(y(n),a(n),a(n+1)),确实不知道这个怎么弄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-26 20:54:51 | 显示全部楼层
非要用递归吗?条条大路通罗马,递归也并不是很科学的方法啊,似乎听说递归比循环更消耗资源。。。
只是对于某些人来说递归更好理解,代码更简洁而已。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 04:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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