鱼C论坛

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

[已解决]23课时,迭代遇到的问题

[复制链接]
发表于 2017-9-16 18:00:16 | 显示全部楼层 |阅读模式

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

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

x
当n>2时,显示的结果只有2,请问,问题出在哪里了,新手上路,多多指教。

def Fun(n):
    n1 = 1
    n2 = 1
    n3 = 1
    if n <1:
        print('输入错误')
        return -1
    if n == 0 or n == 1:
        return 1
    if n > 2:
        n3 = n1 + n2
        n2 = n3
        n1 = n2
        n -= 1
        return n3
    if n == 1:
        return 1
    else:
        return 2
n = int(input('请输入一个整数:'))
result = Fun(n)
if result >= 1:
    print ('有%d只兔子' %result)
最佳答案
2017-9-16 20:13:53
没有循环只会算到2,我安装你的思路修改了。
  1. def Fun(n):
  2.     n1 = 1
  3.     n2 = 1
  4.     if n <1:
  5.         print('输入错误')
  6.         return -1
  7.     if n == 0 or n == 1:
  8.         return 1
  9.     if n >= 2:
  10.         while n - 1:
  11.             n3 = n1 + n2
  12.             n1 = n2
  13.             n2 = n3
  14.             n -= 1
  15.         return n2

  16. n = int(input('请输入一个整数:'))
  17. result = Fun(n)
  18. if result >= 1:
  19.     print ('有%d只兔子' %result)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-16 20:13:53 | 显示全部楼层    本楼为最佳答案   
没有循环只会算到2,我安装你的思路修改了。
  1. def Fun(n):
  2.     n1 = 1
  3.     n2 = 1
  4.     if n <1:
  5.         print('输入错误')
  6.         return -1
  7.     if n == 0 or n == 1:
  8.         return 1
  9.     if n >= 2:
  10.         while n - 1:
  11.             n3 = n1 + n2
  12.             n1 = n2
  13.             n2 = n3
  14.             n -= 1
  15.         return n2

  16. n = int(input('请输入一个整数:'))
  17. result = Fun(n)
  18. if result >= 1:
  19.     print ('有%d只兔子' %result)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-21 09:52:18 | 显示全部楼层
单就这个程序,fun函数底部那一对儿if和else是一直执行的,所以return只有两种结果:当n == 1时为1;当n != 1时为2.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 14:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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